专利摘要:
RETICLE VECTOR QUANTIZATION AUDIO ENCODING METHOD, RETICLE VECTOR QUANTIZATION AUDIO DECODING METHOD, RETICULAR VECTOR QUANTIZATION 5 AUDIO QUANTIZATION SYSTEM AND AUDIO RETENTION AUDITING DECODING SYSTEM the audio coding method and the reticulum vector quantization system. The method comprises: dividing frequency domain coefficients of an audio signal for which a modified cosine discrete transform (MDCT) was performed in a plurality of coding sub-bands, and quantizing and encoding an amplitude envelope value of each encoding sub-band to obtain encoded bits of amplitude envelopes; perform bit allocation in each coding subband, and perform normalization, quantization and coding, respectively, in vectors in a low bit coding subband with pyramid lattice vector quantization and in vectors in a coding subband of high bit with sphere reticulum vector quantization in order to obtain encoded bits of the frequency domain coefficients; multiplex and pack the encoded bits of the amplitude envelope and the encoded bits of the coefficients (...).
公开号:BR112012009714B1
申请号:R112012009714-8
申请日:2010-10-12
公开日:2021-01-19
发明作者:Zhibin LIN;Guoming Chen;Zheng Deng;Hao Yuan;Jiali Li;Ke Peng
申请人:Zte Corporation;
IPC主号:
专利说明:

TECHNICAL FIELD
The present invention relates to audio encoding and decoding technology and, in particular, to a lattice vector quantization audio encoding and decoding system and method. BACKGROUND OF RELATED TECHNIQUE
Audio encoding and decoding technology is the core of multimedia application technologies such as digital audio broadcasting, music streaming and audio telecommunication on the internet and so on, which will benefit greatly from improving the pressing performance of audio encoders. The perceptual audio encoder, a type of lossy transformation domain encoding, is a leading modern audio encoder. The existing codec, such as the Motion Picture Experts Group (MPEG) 4 Advanced Audio Coding (AAC) and so on, performs the transformation domain audio coding and decoding in a non-uniform scalar quantization mode, for the which the calculation has a high complexity and the compression capacity is not high. The convention statistical vector quantizer (for example, the vector quantizer designed with LBG algorithm, where, LBG is a vector quantization method provided by Linde, Buzo and Gray) has a strong compression capacity and therefore has been used widely in the field of audio and video compression. However, the complexity of calculating a vector quantizer increases exponentially with size and the code book obtained by training the training sequence with a clustering algorithm is not usually the global ideal. Recently, a new vector quantizer for audio coding and decoding has appeared, that is, quantization of 5 lattice vector, which quantizes signals with lattice points in a space grid being the vector quantizer. Since the lattice points of space are regular, the codebook can be built by algebra method and only occupies little storage space and the vector quantization of 10 lattice has the advantages of low calculation complexity and high quantization accuracy . However, since the audio codec based on existing vector lattice quantization (such as G.719 and so on) adopts a sphere grid in relation to the coding and decoding codebook, the codebook truncation 15 it is only applicable to sources of uniform and Gaussian allocation information and does not have a good effect on the voice, which is a source of information in accordance with Laplace allocation. However, the bit step length of the existing crosshair vector quantizer 20 (such as G.719) is integer bits (for example, a bit) during encoding, so the step length is too long down bit allocation, which causes overly concentrated bit allocation and limited bits cannot be used more efficiently; additionally, the single-bit space code book of the codec takes up too much storage space. SUMMARY OF THE INVENTION
The problem with the technique to be solved in the invention is to provide a reticulum vector quantization audio coding system and method to obtain a good source of voice information coding effect.
To solve the problem of the above technique, the invention provides an audio coding method of reticulum vector quantization, which comprises: dividing the frequency domain coefficients of an audio signal for which the modified discrete cosine transform (MDCT ) was performed on a plurality of encoding subbands, and quantizing and encoding the amplitude envelope value of each encoding subband to obtain encoded amplitude envelope bits; perform bit allocation in each coding subband and perform normalization, quantization and coding, respectively, in vectors in a low bit coding subband in a pyramid lattice vector quantization and in vectors in a coding subband of high bit in a sphere lattice vector quantization to obtain encoded bits of the frequency domain coefficients, where the low bit coding subband is a coding subband where the number of bits allocated for a coefficient of single frequency domain is less than a preset threshold value, the high bit coding subband is a coding subband where the number of bits allocated to a single frequency domain coefficient is greater than or equal a pre-adjusted threshold value; and multiplexing and packaging the encoded bits of the amplitude envelope and the encoded bits of the frequency domain coefficients of each encoding subband, then sending to a decoder side.
Preferably, when the coding subbands are divided, the frequency domain coefficients after MDCT is performed are divided into several coding subbands with a uniform interval, or are divided into several coding subbands with a non-uniform interval according to auditory perception feature.
Preferably, before the step of carrying out bit allocation in each coding subband, the method further comprises: calculating an initial value of importance for each coding subband, according to the amplitude envelope value of each subband encoder; in the step of carrying out bit allocation in each coding subband, bit allocation is carried out in each frequency domain coefficient in each coding subband, according to the importance of each coding subband, in which, during the bit allocation, the extension of the bit allocation step and the extension of the de-scaling step after the bit allocation are both variable.
Preferably, the initial importance value is calculated according to an ideal bit value and a scaling factor, in accordance with the auditory perception feature under the maximum quantization signal for the noise ratio gain condition, or is the quantization exponent Thg (J) or [_ / zxlog2 [77z (j)] + vJ of each encoding subband amplitude envelope, where, μ> 0 and μ ev are real numbers.
Preferably, the process of carrying out bit allocation in each coding subband comprises: calculating an average bit consumption value of a frequency domain coefficient; calculate an ideal bit value under the maximum quantization signal for the noise ratio gain condition, according to a code rate distortion theory; calculate the initial importance value of each coding subband in bit allocation; perform bit allocation in each coding sub-band, according to the importance of each coding sub-band: increase the number of coded bits of each frequency domain coefficient in the coding sub-band with the maximum importance and decrease the importance of coding subband; until the sum of the number of bits consumed by all coding subbands 5 can meet the maximum value under the condition of the bit limitation.
Preferably, the length of the bit allocation step and the length of the de-scaling step after bit allocation of the low bit coding subband are 10 less than the length of the bit allocation step and than the extension of the weight reduction step after the bit allocation of the zero bit coding subband and the high bit coding subband.
Preferably, the length of the 15-bit allocation step and the weight-loss step length after the bit allocation of the low bit encoding subband are 0.5; the length of the bit allocation step and the length of the weight reduction step after the bit allocation of the zero bit encoding subband and the high bit encoding subband 20 are both 1.
Preferably, the step of performing normalization and quantization in the low bit coding subband in a pyramid lattice vector quantization comprises: 25 performing normalization processing on all frequency domain coefficients in the coding subband using whether the quantization amplitude envelope value of the coding subband and grouping them together to form a plurality of vectors to be quantized from multiple dimensions; perform quantization processing on each vector to be quantized; where, the step of performing quantization processing in each vector to be quantized comprises: performing an energy regulation in a vector to be regulated in 8 dimensions in the coding subband and quantizing the vector to be quantized from 8 energy dimensions regulated to a crosshair point D8; and compare the energy of the D8 crosshair point 5 obtained by quantizing with a maximum pyramid surface energy radius in a coding book, if the energy of the D8 crosshair point is less than or equal to the radius of maximum pyramid surface energy, calculate a quantization index of crosshair point D8 in the 10 code book; if the energy of the D8 crosshair point is greater than the maximum pyramid surface energy radius, perform an energy truncation on a vector to be quantized regulated from the coding subband until the energy of the quantization crosshair point of the vector to be quantized from 15 truncated energy is not greater than the maximum pyramid surface energy radius and, however, continuously add an energy to the vector to be quantized from truncated energy until the energy of the crosshair point D8 stops which the vector to be quantized of added energy is quantized is more than the maximum pyramid surface energy radius and then determine the last D8 lattice point whose energy is not greater than the surface energy radius maximum pyramid to be a vector quantization lattice point and calculate the quantization index of the 25 vector quantization lattice point in the code book; and / or the step of performing normalization and quantization in the high bit coding subband in a sphere lattice vector quantization comprises: 30 performing normalization processing on all frequency domain coefficients in the coding subband, using encoding the quantization amplitude envelope value of the coding subband, and grouping them together to form a plurality of vectors to be quantized in multiple dimensions; perform quantization processing on each vector to be quantized; where, the step of performing quantization processing in each vector to be quantized comprises: performing an energy regulation in a vector to be regulated in 8 dimensions in the coding subband and quantizing the vector to be quantized from 8 energy dimensions regulated to a crosshair point D8; divide a value of the reticle point D8 obtained through quantization by 2, for a power of the number of bits allocated 2reg, on-b "(j) and then requantize for the reticle point D8, judge if the reticle point Requantized D8 is a zero vector, if yes, determine that a zero vector condition is met, if not, determine that the zero vector condition is not met, where, region represents the number of bits allocated to a frequency domain coefficient in the j-th coding subband; if the zero vector condition is met, calculate an index vector of the crosshair point D8; and if the zero vector condition is not met, perform energy truncation at a value of a vector to be quantized until the zero vector condition is met, back up a multiple value w of the vector itself to be quantized, add the backup multiple value w to the vector to be quantized for truncated energy, then quantize for the crosshair point D8, judge whether the zero vector condition is met, if not, calculate a last vector of index k of the crosshair point D8 that meets the zero vector condition, if yes, continuously add the multiple backup value w to the vector to be quantized and then quantize for crosshair point D8 until the zero vector condition is not met.
Preferably, in the step of realizing the energy regulation in the vector to be regulated in 8 dimensions, first search the table below for the sequence number of codebook index and the energy scaling factor scale that correspond to the number of bits, according to the number of bits region_bit (j) allocated to a frequency domain coefficient in the coding subband j, where the vector to be regulated in 8 dimensions is located; then, perform energy regulation on the vector to be quantized, according to the following equation: ^, cαl ^ (Y "- ^ * scαle (mdex) r 'mj represents the 8th vector to be regulated in 8 dimensions normalized in the coding subband j, Escale represents a vector of 8 dimensions after carrying out the energy regulation in ÍÇ, a = (2 6.2 "6.2 6.2" 6.2 “ó, 2 6.2 6 , 26);
in the quantization step of the vector to be quantized with 8 dimensions of regulated energy for the crosshair point D8, quantize the vector of 8 dimensions of regulated energy Y ™ SCaie for the crosshair point D8
'where, fβ (•) represents a quantization operator to map a certain 8-dimension vector to the lattice point D8. The step of calculating the quantization index of the yzOT lattice point D8 * j in the code book comprises: step 1, mark the lattice points on each pyramid surface, according to the magnitude of the pyramid surface energy; where, for an integer cross-stitch grid ZL whose dimension is L, the surface of the pyramid whose energy radius is K is defined as:
where, N (^ L, K} is checked as the number of crosshair points in S (L, K) and for the integer grid ZL, there are recursion formulas to follow for N {L, K): N (L, W) = (Z> 0), N (0, K) = 0 (/ C> 1) N (L, K) = N (Ll, K) + N (Ll, K- ) + N (L, Kl) (L> 1, K>Y); for an integer crosshair point Y = (yl, y2, ..., yL) eZL on the surface of the pyramid whose energy surface radius is K, a number b in [0.1N (L, K) -1 ] is used to identify and b is called a crosshair marker and the steps to resolve marker b are as follows: step 1.1, leave b = Oi = 10k = KDl = L, calculate (m <= L, n < = K) according to the recursion formulas and define:

step 1.3, k = k- yt , 2 = 1-1, 2 = 2 + 1, if k = 0 now, search stop, b (j, m) = b, which is the Y marker, or then, continue to step 1.2; step 2, mark the crosshair point evenly over the entire surface of the pyramid; 10 where, the uniform crosshair marker on the entire pyramid surface is calculated according to the number of crosshair points on each pyramid surface, and the crosshair marker on its own pyramid surface, K- two
where, kk is an even number, b (j, m) is the crosshair point marker D8 1 j on the surface of the pyramid where the crosshair point D8 * j is located and index_b (j, m) is the index of quantization of crosshair point D8 * j in the code book. Preferably, the step of encoding the low bit coding subband into a pyramid lattice vector quantization comprises: performing Huffman coding on the quantization indices of all low 11/104 bit coding subbands; and if the total number of bits consumed from the Huffman coded quantization indices of all low bit coding subbands is less than the total number of bits required for natural coding of the quantization indices of all coding subbands of low low bit, then using the Huffman encoding and setting a Huffman encoding indicator of the frequency domain coefficient to be 1 or true, using the bits saved by the Huffman encoding to modify the number of bits allocated of the coding subband and perform vector quantization and re-coding in the coding subband after the number of allocated bits has been modified; if the total number of bits consumed from the Huffman coded quantization indices of all low bit coding subbands is greater than or equal to the total number of bits required for natural coding of the quantization indices of all coding subbands low bit, perform natural coding on the quantization index again and set the Huffman coding indicator of the frequency domain coefficient to be 0 or false.
Preferably, the step of using the bits saved by Huffman coding to modify the number of bits allocated from the coding subband comprises: calculating the number of bits saved by Huffman coding; find a coding subband with maximum importance in all coding subbands, if the number of bits allocated to the coding subband reaches the maximum value of the number of bits possibly allocated to the coding subband, adjust the importance of the coding subband as being the smallest and no longer modify the number of bits allocated to the coding subband, if the number of bits allocated to the coding subband does not reach the maximum value of the number of bits, possibly allocated to the coding subband, then perform 5 bit allocation modification in the coding subband with maximum importance; and in the bit allocation modification process, allocate 1 bit to the coding subband with the number of allocated bits being 0 and the importance after bit allocation 10 is reduced by 1; allocate 0.5 bit to the coding subband with the number of bits allocated being greater than 0 and less than 5 and the importance after the bit allocation is reduced by 0.5; allocating 1 bit to the coding subband with the number of bits allocated is greater than 5 and the importance after the bit allocation is reduced by 1.
Preferably, after each interval the number of allocated bits is modified, ie the number of bit count allocation modification iterations is added by 1, if the number of bit count allocation modification iterations 20 reaches a pre upper limit -adjusted or if the number of bits that can be used is less than the number of bits required for modifying bit allocation, the bit allocation modification process ends.
Preferably, the sequence of multiplexing and packing the encoded bits is as follows: an amplitude envelope Huffman encoding indicator, an Huffman encoding indicator of the frequency domain coefficient, the number of bit allocation modification iterations , encoded bits of the amplitude envelope, encoded bits 30 of the frequency domain coefficient.
Preferably, when Huffman coding is performed on the quantization indices of all low bit coding subbands, different codebooks are used to encode the vector quantization index of the coding subband, according to the number of bits allocated to a frequency domain coefficient in the coding subband. To solve the problem of the above technique, the invention further provides a method of audio decoding of crosshair vector quantization, which comprises: decoding each encoded bit of amplitude envelope into a bit force to be decoded to obtain an amplitude envelope quantization exponent of each coding subband; perform bit allocation in each coding subband and perform decoding, inverse quantization and inverse normalization of pyramid lattice vector quantization in a low bit coding subband to obtain a frequency domain coefficient of the coding subband low bit and perform decoding, inverse quantization and inverse normalization of pyramid lattice vector quantization in a high bit encoding subband to obtain a frequency domain coefficient of the high bit encoding subband; where, the low bit coding subband is a coding subband where the number of bits allocated to a frequency domain coefficient is less than a preset threshold value, the high bit coding subband it is a coding subband where the number of bits allocated to a frequency domain coefficient is greater than or equal to a preset threshold value; and perform an inverse modified discrete cosine transform (IMDCT) at the frequency coefficient for which a noise loading is performed to obtain a final audio signal.
Preferably, before the step of carrying out bit allocation in each coding subband, the method further comprises: calculating an initial value of importance for each coding subband, according to the amplitude envelope value of each subband encoder; in the step of carrying out bit allocation in each coding subband, bit allocation is performed in each frequency domain coefficient in each coding subband according to the importance of each coding subband, in which, during the allocation bit length, the length of the bit allocation step and the length of the weight reduction step after bit allocation are both variable.
Preferably, after the bit allocation is performed and before decoding, the bit allocation modification is performed in the encoding subband to count intervals again, according to a value of the number of bit count allocation modification iterations and the importance of each coding subband in an coding site.
Preferably, when the bit allocation is performed, the length of the bit allocation step and the extent of the de-scaling step after the bit allocation of the low bit encoding subband are less than the length of the bit step. bit allocation and the extension of the weight reduction step after the bit allocation of the zero bit coding subband and high bit coding subband; when bit allocation is modified, the extent of the bit modification step and the extent of the de-scaling step after bit modification of the low bit encoding subband are less than the extent of the bit modification step and the extension of the de-scaling step after bit modification of the zero bit encoding subband and high bit encoding subband.
Preferably, the length of the bit allocation step and the length of the weight reduction step after bit allocation of the low bit encoding subband are both 0.5; the length of the bit allocation step and the length of the weight reduction step after bit allocation of the zero bit encoding subband and high bit encoding subband are both 1.
Preferably, in the step of performing decoding, inverse quantization and inverse normalization of pyramid lattice vector quantization in the low bit coding subband, the vector quantization index of the low bit coding subband is obtained by performing Huffman encoding or direct decoding in subband 15 low bit encoding is performed, according to the Huffman encoding indicator of the frequency domain coefficient of the encoding side and the inverse quantization and inverse normalization of reticulum vector quantization pyramid values are performed on all 20 vector quantization indices to obtain the frequency domain coefficient of the low bit coding subband; in the step of performing decoding, inverse quantization and inverse normalization of vector quantization of sphere lattice in the high bit coding subband, natural decoding is used directly to obtain the vector quantization index of the bit coding subband high and inverse quantization and inverse normalization of vector reticle sphere quantization are performed on all vector quantization indices to obtain the frequency domain coefficient of the high bit coding subband. To solve the problem of the above technique, the invention further provides a reticulum vector quantization audio coding system, comprising: a modified discrete cosine transform unit (MDCT), an amplitude envelope calculation unit, a amplitude envelope quantization and encoding unit, a bit allocation unit, a normalization processing unit, a classification lattice vector encoding and quantizing unit and a bit stream multiplexer; wherein, the MDCT unit is configured to perform MDCT on an audio signal to generate frequency domain 10 coefficients; the amplitude envelope calculation unit is connected to an MDCT unit and is configured to divide the frequency domain coefficients generated by an MDCT unit into a plurality of encoding subbands and calculate an amplitude envelope value of each coding subband; the amplitude envelope encoding and quantizing unit is connected to the amplitude envelope calculating unit and is configured to quantize and encode the amplitude envelope value of each encoding subband to generate an encoded bit of the amplitude envelope. each coding subband; the bit allocation unit is connected to the amplitude envelope encoding and quantizing unit and is configured to perform bit allocation to obtain the number of encoded bits allocated to each frequency domain coefficient in each encoding subband; the normalization processing unit is connected to an MDCT unit and is configured to use the encoding subband quantization amplitude value to perform normalization processing on all frequency domain coefficients in each subband encoder; the sorting lattice vector coding and quantizing unit is connected to the normalization processing unit and the bit allocation unit is configured to perform quantization and coding on the vectors to be quantized normalized in a low bit coding subband and a high bit coding subband respectively in a pyramid lattice vector quantization and a sphere lattice vector quantization to obtain the coded bit of the frequency domain coefficient; where, the low bit coding subband is a coding subband where the number of bits allocated to a frequency domain coefficient is less than a preset threshold value, the high bit coding subband it is a coding subband where the number of bits allocated to a frequency domain coefficient is greater than or equal to a preset threshold value; the bitstream multiplexer is connected to the amplitude envelope encoding and quantizing unit and the rating lattice vector encoding and quantizing unit is configured to multiplex the encoded bits of each encoding subband and the encoded bits of the coefficients frequency domain and send to a decoder side.
Preferably, when the coding sub-bands are divided, the amplitude envelope calculation unit divides the frequency domain coefficients after the MDCT is performed in several coding sub-bands with a uniform interval, or divides into several sub-bands coding with a non-uniform interval, according to the auditory perception feature.
Preferably, the bit allocation unit comprises an importance calculation module and a bit allocation module that are connected, in which the importance calculation module is configured to calculate an initial importance value for each subband encoder, according to the amplitude envelope value of the encoder subband; 5 the bit allocation module is configured to perform bit allocation in each frequency domain coefficient in each coding subband, according to the importance of each coding subband, in which, during bit allocation, the extension of the bit allocation step and the extension of the de-scaling step after bit allocation are both variable. Preferably, the initial importance value is calculated according to an ideal bit value and a scaling factor in accordance with the auditory perception feature 15 under the maximum quantization signal for the noise ratio gain condition, or is the exponent of quantization 7 (j) OR | _ / 7xlog2 [7Tz (j)] + vJ of each encoding subband amplitude envelope, where, μ> Q and μ ev are both real numbers. 20 Preferably, when calculating the initial value of importance, the importance calculation module first calculates an average bit consumption value of a frequency domain coefficient; then calculates an ideal bit value under the maximum quantization signal for the noise ratio gain condition, according to a code rate distortion theory; then calculates the initial importance value of each coding subband in bit allocation, according to the average bit consumption value and the ideal bit value; 30 the importance calculation module that performs bit allocation in each coding subband, according to the importance of each coding subband comprises: increasing the number of coded bits of each frequency domain coefficient in the coding subband with maximum importance and decrease the importance of the coding sub-band; until the sum of the bit numbers consumed by all coding subbands meets the maximum value under the condition of the bit limitation.
Preferably, when the bit allocation module performs bit allocation, the length of the bit allocation step and the extent of the weight reduction step after the bit allocation of the low bit coding subband are less than the extension of the bit allocation step and the extension of the de-scaling step after the bit allocation of the zero bit coding subband and the high bit coding subband.
Preferably, when the bit allocation module performs bit allocation, the extension of the bit allocation step and the extension of the weight reduction step after the bit allocation of the low bit coding subband are both 0.5; the length of the bit allocation step and the length of the weight reduction step after bit allocation of the zero bit coding subband and the high bit coding subband are both 1.
Preferably, the sorting lattice vector encoding and quantizing unit comprises a sorting processing module and a pyramid lattice vector quantizing module, wherein the sorting processing module is connected to the sorting processing unit. normalization and is configured to group the normalized frequency domain coefficients to form a vector to be quantized from multiple dimensions and to route the normalized vector to be quantized from the low bit coding subband to the pyramid lattice vector quantization module ; the pyramid lattice vector quantization module is connected to the classification processing module and is configured to perform the pyramid lattice vector quantization after the vector to be normalized from each low bit coding subband; the pyramid lattice vector quantization module comprises a first energy regulation sub-module, a first cross-section quantization sub-module, a first energy adjustment sub-module and a quantization index calculation sub-module, where, the first energy regulation sub-module is configured to perform energy regulation in a vector to be regulated in 8 dimensions in the coding sub-band; the first crosshair quantization sub-module is connected to the first energy regulation sub-module and is configured to quantize the vector to be regulated in 8 dimensions for a crosshair point D8; the first energy adjustment submodule is connected to the first crosshair quantization submodule and is configured to compare the energy of the D8 crosshair with a maximum pyramid surface energy radius in a coding code book, if the lattice point energy D8 is less than or equal to the maximum pyramid surface energy radius, notify the quantization index calculation submodule to calculate a lattice point quantization index Ds in the code book; if the energy of the D8 crosshair point is greater than the maximum pyramid surface energy radius, perform an energy truncation on the vector to be quantized regulated in the coding subband and notify the first crosshair quantization submodule for truncate the energy until the energy of the vector quantization lattice point to be quantized of truncated energy is not greater than the maximum pyramid surface energy radius and, however, continuously add an energy to the vector to be quantized from truncated energy and notify the first crosshair quantization submodule to quantize the vector to be quantized from added energy to crosshair point D8 until the energy from crosshair point D8 to which the vector to be quantized from added energy is quantized is greater than the maximum pyramid surface energy radius and notify the quantization index calculation sub-module to calculate the quantization index that of the last crosshair point Da whose energy is not greater than the maximum pyramid surface energy radius in the codebook; the index quantization calculation module is connected to the first energy adjustment sub-module and is configured to calculate the quantization index of crosshair point D8 in the code book, according to the notification of the first energy adjustment sub-module; and the classification lattice vector coding and quantization unit further comprises a sphere reticulum vector quantization module connected to the classification processing module; the classification processing module is further configured to route the vector to be quantized normalized in the high bit coding subband to the sphere reticulum vector quantization module to process; the sphere reticulum vector quantization module is configured to perform sphere reticulum vector quantization in the vector to be quantized normalized in the high bit coding subband; the sphere reticulum vector quantization module comprises a second energy regulation sub-module, a second cross-section quantization sub-module, a vector condition judgment sub-module, a second energy adjustment sub-module and a calculation sub-module index vector, in which the second energy regulation sub-module is configured to perform energy regulation in the vector to be regulated in 8 dimensions in the coding subband; the second crosshair quantization sub-module is connected to the second energy regulation sub-module and is configured to quantize the vector to be regulated 10 of 8 dimensions for crosshair point D8; the zero vector condition judgment submodule is connected to the second crosshair quantization submodule, and is configured to judge whether crosshair point D8 meets the zero vector condition, if yes, notify the vector calculation submodule index to calculate the index vector of crosshair point D8; if not, notify the second energy adjustment sub-module to adjust the energy of the vector to be quantized; the condition of zero vector is to divide the lattice point value D8 obtained by quantizing 2 0 vector by 2, for a power of the number of bits allocated 2reg, 0 ”-i" (7 ') and then projecting to the lattice point D8, the projected lattice point Dg value is a vector zero, where region bit ^ j} represents the number of bits allocated to a frequency domain coefficient in the coding subband 25; the second energy adjustment sub-module is connected to the zero vector condition judgment sub-module and the second cross-stitch quantization sub-module, and is configured to truncate 30 energy to a vector value to be quantized and notify the second crosshair quantization sub-module to quantize the vector to be quantized, after energy truncation to the crosshair point De, until the zero vector condition is satisfied; back up a multiple value w of the vector to be quantized, and add the mutual value backup multiple w to the vector to be quantized for truncated energy, and to notify the second crosshair quantization submodule to quantize the vector to be quantized for truncated energy for crosshair point D8, until the zero vector condition is not satisfied; and notifying the index vector calculation sub-module to calculate a last index vector of crosshair point D8 that meets the zero vector condition; the index vector calculation sub-module is connected to the zero vector condition judgment sub-module and the second energy adjustment sub-module and is configured to calculate the quantization index of the crosshair point Dg in the code book, according to notifications from the zero vector condition judgment sub-module and the second energy adjustment sub-module.
Preferably, the classification lattice vector that quantifies and encodes the unit further comprises an encoding type judging module, a Huffman encoding module, a natural encoding module and a bit allocation modifier module, wherein, the judging module of bit encoding type is configured to judge whether a total number of bits consumed from the Huffman encoded quantization indices of all low bit coding subbands is less than the total number of bits required for natural encoding of the quantization indices of the two low bit coding sub-bands, if yes, notify the Huffman coding module and bit allocation modifier module; if the total number of bits consumed from the Huffman coded quantization indices of all low bit coding subbands is greater than or equal to the total number of bits required for coding the quantization indices of all low bit coding subbands , notify the natural encoder module; the Huffman encoder module is configured to perform Huffman encoding on the quantization index of the low bit encoding subband, and adjust the frequency domain coefficient Huffman encoding indicator to be 1 or true, the natural encoder module it is configured to perform natural coding on the quantization index of the low bit coding subband and the index vector of the high bit coding subband; the bit allocation modifier module is configured to use bits saved by Huffman coding to modify the number of bits allocated from the coding subband, and notify the sort processor module to perform vector quantization and coding after sorting the bits. coding subbands with the number of allocated bits that are modified.
Preferably, the bit allocation modifier module is configured to, when performing bit allocation, find a coding subband with maximum importance in all coding subbands, if the number of bits allocated in the coding subband has reached the maximum value of the number of bits possibly allocated in the coding subband, adjust the importance of the lowest coding subband, and no longer modify the number of bits allocated to the coding subband, if the number of bits allocated in the coding subband has not reached the maximum value of the number of bits possibly allocated in the coding subband, then perform the modification of bit allocation in the coding subband with the maximum importance; and during the modification of bit allocation, allocate 1 bit in the coding subband with the number of allocated bits being 0, and reduce the importance by 1 after the bit allocation; 5 allocate 0.5 bit in the coding subband with the number of allocated bits being greater than 0 and less than 5, and reducing the amount by 0.5 after bit allocation; allocate 1 bit in the coding subband with the number of bits allocated being greater than 5, and reduce the importance by 1 after the allocation of 10 bits.
Preferably, after each time, the number of allocated bits is modified by the bit allocation modifier module, that is, the number of bit count allocation modification iterations is added to 1, if the number of 15 allocation modification iterations bit count has reached a preset upper limit or the number of bits that can be used is less than the number of bits required for bit allocation modification, to end a bit allocation modification process.
Preferably, the sequence of the bit stream multiplexer that multiplexes and packages the encoded bits is as follows: an amplitude envelope Huffman encoding indicator, a frequency domain coefficient Huffman encoding indicator, the number of iterations 25 of modification of bit allocation, encoded bits of an amplitude envelope, encoded bits of the frequency domain coefficient.
Preferably, when the Huffman coding module performs Huffman coding on the quantization indices of all low bit coding subbands, it uses different codebooks to encode the vector quantization index of the coding subband accordingly. with the number of bits allocated to a frequency domain coefficient in the coding subband. To solve the above technical problem, the invention further provides a reticle vector quantization audio decoder system, comprising: a bit stream demultiplexer, a sub-band encoder amplitude decoder unit, a memory allocation unit bit, a frequency domain coefficient decoding unit, a sorting lattice vector quantizing unit, an inverse normalization processing unit, a noise loading unit, and an inverse modified discrete cosine transform unit (IMDCT ), wherein, the bit stream demultiplexer is configured to separate a coded bit of amplitude envelope and bit coded domain coefficient 15 of a bit stream to be coded; the encoding subband amplitude envelope decoder unit is connected to the bitstream demultiplexer and is configured to decode the amplitude encoded bit 20 emitted by the bitstream demultiplexer to obtain an amplitude envelope quantization exponent each coding subband; the bit allocator unit is connected to the amplitude envelope decoder unit 25 and is configured to perform bit allocation to obtain the number of encoded bits allocated to each frequency domain coefficient in each encoding subband; the frequency domain coefficient decoder unit 30 is connected to the amplitude envelope decoder unit and the allocator unit and is configured to decode a low bit coding subband to obtain a quantization index of the bit coding subband low; and decoding a high bit coding subband to obtain the index vector of the high bit coding subband, where, the low bit coding subband is the coding subband where the number of bits allocated in a frequency domain coefficient is less than a preset threshold value, the high bit coding subband is a coding subband where the number of bits allocated to a frequency domain coefficient is greater than or equal to one pre-adjusted threshold value; the sorting lattice vector quantization inverse quantizer unit is configured to perform inverse quantization of the pyramid lattice vector quantization on the quantization index of the low bit coding subband, and perform inverse quantization of the lattice vector quantization sphere in the index vector of the high bit coding subband; the inverse normalization processing unit is configured to perform inverse normalization in values after inverse quantization has been performed for the coding subband, and to obtain the frequency domain coefficient; the noise loading unit is configured to carry out noise loading in the subband where no bits are allocated in the frequency domain coefficient output value emitted by the reverse normalization processing unit; the reverse modified discrete cosine transform unit (IMDCT) is connected to the noise loading unit and is configured to perform IMDCT on the frequency domain coefficient for which the noise loading was performed to obtain an audio signal.
Preferably, the bit allocator unit comprises an importance calculation module and a bit allocator module connected to each other, in which the importance calculation module is configured to calculate an initial importance value for each coding subband according to with the amplitude envelope value of the coding subband; the bit allocator module is configured to perform bit allocation in each frequency domain coefficient in each coding subband according to the importance of each coding subband, in which, during bit allocation, the extension step of bit allocation and the extent of the weight reduction step after bit allocation are both variables.
Preferably, the bit allocator unit further comprises a bit allocation modifier module connected to the bit allocator module, and the bit allocation modifier module is configured to perform bit allocation modification in the coding subband for count times again after performing the bit allocation according to a value of the number of bit count allocation modification iterations and the importance of each encoding subband on an encoding side.
Preferably, when the bit allocator module performs bit allocation, the length of the bit allocation step and the extent of the weight reduction step after the bit allocation of the low bit coding subband are less than the length of the bit allocation. bit allocation step and the extension of the de-scaling step after bit allocation of the zero bit encoding subband and high bit encoding subband. When the bit allocation modifier module performs the bit allocation modification, the extension of the bit allocation modification step and the extension of the de-scaling step after the bit allocation modification of the low bit coding subband are less than the length of the bit allocation modification step and the length of the weight reduction step after the bit allocation modification of the zero bit coding subband and the high bit coding subband.
Preferably, the frequency domain coefficient decoder unit, when decoding the low bit coding subband, performs Huffman coding on the low bit coding subband according to the Huffman coding indicator of the low coefficient. frequency domain on the coding side or performs natural coding to obtain the vector quantization index of the low bit coding subband; when decoding in the high bit coding subband, it directly performs natural coding to obtain the quantization index vector of the high bit coding subband.
Preferably, the inverse quantization vector quantization unit of the classification lattice comprises a classification processor module and an inverse quantization module of the pyramid lattice vector, in which the classification processor module is configured to forward the quantization index. from the low bit coding subband to the inverse quantizer module of pyramid lattice vector quantization; the inverse quantizer module of pyramid lattice vector quantization is configured to perform inverse quantization on the quantization index of the low bit coding subband; wherein, the pyramid lattice vector inverse quantizer module comprises a first lattice point inverse quantizer submodule and a first interconnected inverse energy regulator submodule, wherein the first lattice point inverse quantizer submodule is configured to determining an energy pyramid surface on which the quantization index of the low bit coding subband is located and a marker on the energy pyramid surface and, furthermore, resolving a corresponding lattice point Ds; the first reverse energy regulating sub-module is configured to perform reverse energy regulation at the resolved crosshair point D8 Y, and obtain = (K + a) / scale (index) where, a = (2'6) 2 * 6, 2'6,2'6,2 "652'6,2'6,2'6), scale (index) is a scaling factor; the inverse normalization processing unit is configured to perform inverse ym normalization processing on - <y to obtain the frequency domain coefficient of the mth vector of the coding subband j recovered on the decoder side: ym -y (/) / 2 tn where, Thg (j) is an envelope quantization exponent amplitude of the j-th coding subband.
Preferably, the sorting lattice vector quantizer unit comprises an inverse quantization module of sphere lattice vector; the classification processor module is further configured to route the index vector of the high bit coding subband to the inverse quantizer module of process sphere vector quantization; the inverse quantizer module of sphere reticulum vector quantization is configured to perform inverse quantization on the index vector of the high bit coding subband; the sphere quantum vector quantization inverse quantizer module comprises a second lattice point quantizer submodule and a second interconnected energy regulator submodule, where the second lattice point quantizer submodule is configured to solve the lattice point Ds corresponding to the index vector, where, the resolution step of the lattice point Ds corresponding to the index vector comprises: calculating x = k * G, and calculating ytemp = x / (2 * {region_bit (j )); and calculate the crosshair point De y = x- fD8 (ytemp) * (2A (region_bit (j)); where, k is the vector quantization index vector, regionrepresents the number of bits allocated in a domain coefficient frequency in the coding subband j; G is a matrix generating the lattice point Dg and its shape is as follows:
the second reverse energy regulating sub-module is configured to perform reverse energy regulation at the resolved crosshair point D8, and obtain Y; = y * scale (region _ bit (j)) / (2reg, on-bitU)) + a where, a = (2 ^, 2 ^, 2 ^, 2'6.2 ^, 2 ^, 2 ^ , 2 ^), scale (region_bit (j)) is a scaling factor; the inverse normalization processing unit is configured to perform ym 5 inverse normalization processing in 1j to obtain the frequency domain coefficient of the mth vector of the coding subband j recovered on the decoder side: X ”'- 2 Th'' gK ~ .m where, Thg (j) is a 10-envelope amplitude quantization exponent of the j-th coding subband. The audio coding method and the lattice vector quantization system in the invention fully consider the allocation characteristic of the voice information source, perform quantization on the vector to be quantized in a lattice vector quantization joined, specifically, to pyramid lattice vector quantization and sphere lattice vector quantization are respectively used for the low bit coding subband and the high bit coding subband according to the number of bits allocated in the subband encoding, and the inverse encoding process is used in decoding, thus obtaining a good source of voice information encoding effect. In addition, a bit allocation with variable step length is used for the 25 bit allocation, and the bit allocation step length of a frequency domain coefficient can be adjusted minimally to half a bit, thus improving efficiency. of bits. However, the pyramid lattice vector quantizer with the low bit step length is designated, and its lattice marker algorithm is of low complexity, so storage space is reduced. Additionally, in the quantization of the lattice vector of the high bit coding subband, a new criterion is used for the codebook extension marker, thus further reducing the complexity of the lattice vector quantizer algorithm. The algorithm for saving bits is also designated in the encoding process.
BRIEF DESCRIPTION OF THE DRAWINGS FIGURE 1 is a schematic diagram of the reticulum vector quantization audio coding method in accordance with the invention. FIGURE 2 is a schematic diagram of the crosshair vector quantization process in accordance with the invention. FIGURE 3 is a schematic diagram of the bit allocation modification process in accordance with the invention. FIGURE 4 is a schematic diagram of the audio decoding method of quantizing the crosshair vector in accordance with the invention. FIGURE 5 is a schematic diagram of the structure of the reticulum vector quantization audio coding system in accordance with the invention. FIGURE 6 is a schematic diagram of the module structure of the coding system vector quantizer and coding unit of the coding system in accordance with the invention. FIGURE 7 is a schematic diagram of the lattice vector quantization audio decoding system structure in accordance with the invention. FIGURE 8 is a schematic diagram of the module structure of the inverse quantization unit of the vector of the lattice of classification of the decoding system in accordance with the invention. FIGURE 9 is a schematic diagram of the code flow composition in accordance with the example of the invention. PREFERENTIAL MODALITIES OF THE PRESENT INVENTION
The core idea of the invention is to quantize the vectors to be quantized in a joined lattice vector quantization, that is, a pyramid lattice vector quantization and a sphere lattice vector quantization are used respectively for a coding subband low bit and a high bit coding subband according to the number of bits allocated in the coding subband, and the reverse encoding process is used for decoding, thus obtaining a good coding effect. In addition, bit allocation with a variable step length is used for bit allocation to improve the bit usage efficiency.
The invention is described in detail below in four parts, that is, an encoding method, a decoding method, an encoding system and a decoding system. 1. CODING METHOD
The audio encoding method of reticulum vector quantization in the invention comprises the following steps:
A. divide the frequency domain coefficients of an audio signal for which a modified discrete cosine transform (MDCT) was performed in a plurality of coding sub-bands, and quantize and encode the amplitude envelope value of each sub -coding band to obtain encoded bits of amplitude envelopes; when the coding sub-band is divided, the frequency domain coefficients after the MDCT are divided into several equally spaced coding sub-bands, or they are divided into several non-uniform coding sub-bands according to the auditory perception attribute ;
B. perform a bit allocation in each coding subband, and perform normalization, quantization and 5 coding respectively in vectors in a low bit coding subband with a pyramid lattice vector quantization and in vectors in a sub- high bit coding band in a sphere lattice vector quantization to obtain coded bits of the frequency domain coefficient 10, where the low bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient is less than a threshold value, the high bit coding subband is a coding subband in which the number of bits 15 allocated in a frequency domain coefficient is greater than or equal to a value pre-adjusted threshold; before the step of carrying out bit allocation for each coding subband, calculate an initial value of the importance of each coding subband according to the amplitude envelope value of the coding subband; then perform the bit allocation for each frequency domain coefficient in the coding subband according to the importance of the coding subband, where, during bit allocation, the length of the bit allocation step and the 25 extension the weight reduction step after bit allocation are both variable. During bit allocation for each frequency domain coefficient in the coding subband according to the importance of the coding subband, the extent of the bit allocation step 30 and the extent of the de-scaling step after allocation bit values are variable; specifically, when bit allocation is made to the coding subband, the length of the bit allocation step and the extent of the de-scaling step after the bit allocation of the low bit coding subband are less than the extension of the bit allocation step and the extension of the reduction step 5 after the bit allocation of the zero bit coding subband and the high bit coding subband, where, the zero coding subband bit is referred to as a coding subband where the number of bits allocated in a frequency domain coefficient is zero in the coding subband; the initial value of importance can be calculated according to an ideal bit value under the maximum quantization signal for noise ratio gain condition and a scaling factor that meets the characteristic of auditory perception, and a quantization exponent Thq (j) the encoding subband amplitude envelope, or | _ // xlog2 [T / (j)] + vJ (where, μ> 0, and μ and > are both real numbers) can also be the initial value of importance for the bit allocation of each coding subband, where, 20 j = 0, ..., 10l;
C. multiplex and pack the encoded bits of the amplitude envelope and the encoded bits of the frequency domain coefficient of each coding subband, and send them to a decoding side.
EXAMPLE 1 - CODING METHOD FIGURE 1 is a schematic diagram of the structure of the audio coding method for quantizing the vector of the lattice in accordance with the example of the invention. The audio stream with a frame length that is 20ms and a sampling rate 30 that is 32KHz is taken, for example, to illustrate the audio encoding method of the invention in the example. The method of the invention is also suitable under the conditions of other frame extensions and sample rates. As shown in FIGURE 1, the method comprises the following steps:
Step 101, Modified Discrete Cosine Transform 5 (MDCT) is performed on the audio stream to be encoded to obtain frequency domain coefficients at N sampling points in the frequency domain.
The specific implementation in the step can be: constituting a 10N time domain sampling signal of 2N points x («) with an N-point x (n) time domain sampling signal of the current frame and a sampling signal time domain of N points xold (n) of the last frame, in which the sampling signal of 2N points time domain can be represented in the following equation:

The MDCT is performed on x («) to obtain the following frequency domain coefficient: wy π 1 V 1
20 Where, w (n) represents a sine window function, the expression is:

When the frame length is 20ms and the sampling rate is 32 kHz, 640 domain coefficients of 25 frequencies are obtained. Other frame extensions and sample rates can be used to obtain the corresponding number N of frequency domain coefficients.
Step 102, the frequency domain coefficients of N points are divided into several coding subbands, and the amplitude envelope of each coding subband is calculated.
In the example, a non-uniform subband division is used and a frequency domain amplitude envelope (called the summary amplitude envelope) for each subband is calculated. The stage can be implemented in the following substeps.
Step 102a, the frequency domain coefficients in the required frequency range to be processed are divided into L subbands (which can be called coding subbands).
In the example, the required frequency range to be processed is 0Q13.6kHz, and the non-uniform subband division can be performed according to the perception characteristics of the human ear. Table 1 shows a specific division.
In table 1, the frequency domain coefficients in the 0ül3,6kHz frequency range are divided into 28 coding subbands, ie L = 28; and frequency domain coefficients above 13.6 kHz are set to 0.
Step 102b, the amplitude envelope for each coding subband is calculated according to the following equation:
Where, LZndex (j) and HJndex (j) respectively represent the starting frequency point and the ending frequency point of the j-th coding subband, whose specific values are as shown in table 1. Sequence number of subband Start frequency point (LIndex) End frequency point (HIndex) Subband width (Bandwidth)
Table 1 Example of frequency domain non-uniform subband splitting
Step 103, the amplitude envelope value of each coding subband is quantized and encoded to obtain an amplitude envelope quantization exponent and 10 amplitude envelope quantization exponent encoded bits (i.e., the encoded bits of the envelope amplitude). Each of the coding subband amplitude envelopes calculated according to equation (4) is quantized using equation (5) to obtain the amplitude envelope quantization exponent of each coding subband: ^ (j) = L21 ° g2 ^ (j) J (5) Where, [_XJ represents rounded down, Thg (0) is the amplitude envelope quantization exponent of the first coding subband, whose range is limited to [-5 , 34], that is, when Thq (0) <- 5, 77 </ (0) = -5; when 7 (0)> 34, 7V °) = 34. The reconstructed quantized amplitude envelope according to the quantization exponent eZ 6 bits are used to encode the quantization exponential amplitude envelope of the first coding subband, ie that is, 6 bits are consumed. The differential operating values between amplitude envelope encoding subband quantization exponents are calculated by the following equation: J = OX, L-2 (6) The amplitude envelope can be corrected in the following way to ensure that ΔThq (f ) is in the range of [- 15, 16]: if A77J (J) <- 15, A77I (J) - ~ 15, ^ (./) = T / GJ + 1) +15, J = Z- 2, L, 0; if Δ ^ 0)> 16, A ^ (j) = 16, rA9 (7 + 1) = ^ (j) + 16, j = 0, ..., Z-2; perform Huffman encoding for ΔThq (J j = L-2, and calculate the number of bits consumed (Huffman encoded bits) at the moment. If the number of Huffman encoded bits is now greater than the number of allocated 'fixed bits' (in the example, greater than (Ll) x5), then natural encoding is used to encode ΔTh (J), j - 0, ..., L-2, 5 and the amplitude envelope Huffman encoding indicator bit Flag_huff_rms is set to 0. Otherwise, the Huffman encoding is used to encode ΔTh (j), j = 0, ..., L-2, and the Huffman encoding indicator bit for the amplitude envelope Flag_huff_rms is set in 1. The 10 encoded bits of the amplitude envelope quantization exponent (that is, the encoded bits of amplitude differential value) and the Huffman encoding indicator bit of the amplitude envelope needed to be delivered in MUX. Step 104, a bit allocation is performed in each coding subband according to the importance of each coding subband. The initial value of the importance of each coding subband is calculated first according to a code rate distortion theory and coding subband amplitude envelope information, and then bit allocation is performed in each subcode. according to the importance of each sub-band. The stage can be implemented in the following substeps: 25 Stage 104a, the average bit consumption value for the single frequency domain coefficient is calculated. The number of bits, bit_sides, consumed by side information and the number of bits, bits_Th, consumed by an encoding subband amplitude envelope are subtracted from the total number of bits, bits_available, which can be supplied by frames with the 20 ms extension to obtain the number of the remaining bits, bits_left, which can be used for encoding the frequency domain coefficient, ie: bits_left = bits_available - bit_sid.es - bits_Th (7) The side information comprises bits for Huffman encoding indicator Flag_huff_rms, Huffman encoding indicator for frequency domain coefficient Flag_huff_plvq and the number of iterations count. Flag_huff_rms is used to identify whether Huffman encoding is used for the subband amplitude envelope; Flag_huff_plvq is used to identify whether Huffman coding is used when vector quantization and coding is performed on frequency domain coefficients; and the number of iterations count is used to identify the number of modifications of iterations in bit allocation (as described in detail in the previous steps). The average R bit consumption value of the single frequency domain coefficient is calculated: - bits left
In which, Leo is the number of coding sub-bands.
Step 104b, the ideal bit value is calculated according to the code rate distortion theory under the maximum quantization signal for noise ratio gain condition. Code rate distortion based on the independent Gaussian allocation random variable is optimized by the Lagrange method, and the optimal bit allocation value under the maximum quantization signal for each subband's noise ratio gain condition encoding under the code rate distortion limit can be calculated to be:

Step 104c, the initial importance value of each coding subband in the bit allocation is calculated. The initial importance value of each coding subband 10 used to control bit allocation in real bit allocation can be obtained using the above ideal bit value and scaling factors that meet the human ear perception characteristic: rk (j) = ax rr (j) = a [7 + 7 Nijn (/)], j = 0, L, L -1 15 (12) In which, the scaling factor is created, which is associated with the encoding bit rate and can be obtained through statistical analysis, usually Oc ^ cl. In the example, it is calculated at 0.6. rk (j) represents the importance of the j-th coding subband which is used for bit allocation.
Step 104d, bit allocation is performed in each coding subband based on the importance of each coding subband. 25 The specific description is as follows: the coding subband where the maximum value is located in each rk (j) is first found, and it is assumed that the marker of the coding subband is jk, then the number of bits coded for each frequency domain coefficient in the coding subband is increased and the importance of the coding subband is reduced; however, the total number of bits consumed for the bit _band _used (jk) subband encoding is calculated; finally, the sum of the bit numbers consumed by all encoding subbands sum (bit_band_used (j)), j = 0, ..., Lül is calculated; the above process is repeated until the sum of the bit numbers consumed can satisfy the maximum value under the condition of the bit limitation condition. The number of allocated bits refers to the number of bits allocated to a frequency domain coefficient in a coding subband. The number of bits consumed in a coding subband refers to the number of bits allocated in a frequency domain coefficient in a coding subband that multiplies the number of frequency domain coefficients included in the coding subband. In the example, the step length for allocating bits in the encoding subband with the number of bits allocated being 0 is 1 bit, and the step length reduction after bit allocation is 1; the step length for allocating additional bits in the coding subband with the number of bits allocated being greater than 0 and less than the threshold value 5 is 0.5 bit; and the extent of the weight reduction step after the allocation of additional bit is also 0.5; the step length for allocating additional bits in the coding subband with the number of bits allocated being greater than the threshold value 5 is 1 and the step length reduction after the additional bit allocation is also 1. The method bit allocation in the step can be represented as the following pseudocode: allow region_bit (j) = 0, y = 0, l, L, L-1; for coding sub-bands 0.1, ..., I »- 1: {search for jk = argmax [r & (_ /)]; if region_bit (jk) <5 {if region_bit (jk) = 0 allow region_bit (jk) = region_bit (jk) + 1; calculate bit_band_used (jk) = region_bit (jk) Bandwidth (jk); allow rk (jk) = rk (jk) - 1; otherwise, if region_bit (jk)> = 1 allows region_bit (jk) = region_bit (jk) + 0.5; calculate bit_band_used (jk) = region_bit (jk) Bandwidth (jk) * 0.5; allow rk (jk) = rk (jk) - 0.5; } otherwise, if region_bit (jk)> = 5 allows region_bit (jk) = region_bit (jk) + 1; ) -1 if region _ bit (jk) <MaxBit allow rk (jk) = -100 else region_bit (jk) xBandWidth (jk); } calculate bit_used_all = sum (bit_band_used (j)) j = 0.1, ..., L - 1; if bit_used_all <bits_left - 24, return and search for jk again in each coding subband, circularly calculate the bit allocation value; where, 24 is the maximum value of the coding subband width; otherwise, end the circle, calculate the bit allocation value and issue the current bit allocation value. } Finally, the remaining bits whose number is less than 24 are allocated to the coding subbands that meet the requirements according to the following principle based on the importance of the coding subband. Preferably, 0.5 bit is allocated to each frequency domain coefficient in the coding subband whose bit allocation is 1, and meanwhile the importance of the coding subband is reduced by 0.5; otherwise, 1 bit is allocated to each frequency domain coefficient in the coding subband whose bit allocation is 0, and meanwhile the importance of the coding subband is reduced by 1, until bit_leftübit_used_all <4 when the bit allocation to finish. Where, MaxBit is the maximum number of encoded bits that can be allocated in a frequency domain coefficient in the encoding subband. In the example, MaxBit = 9 is used. The value can be properly adjusted according to the codec coding rate. region_bit (j) is the number of bits allocated to a frequency domain coefficient in the j-th coding subband.
Step 105, pyramid lattice vector quantization and sphere lattice vector quantization are respectively used for the vectors in the low bit coding subband and in the high bit coding subband to quantize and code to obtain the encoded bits of the frequency domain coefficient. The process of quantizing and encoding the classification lattice vector in the invention is described below with reference to FIGURE 2.
Step 106, the coding code stream is built. FIGURE 9 is the schematic diagram of the code flow composition in the example of the invention. First, the side information is recorded in the MUX bit stream multiplexer in the following sequence, Flag_huff_rmsDFlag_huff_plvq and count; then the encoding subband amplitude encoding subband is registered in the MUX, and then the encoded bits of the frequency domain coefficient are registered in the MUX; finally, the code stream written in the order above is transmitted to the decoder side. Reticle vector quantization and classification and coding process Specifically, as shown in FIGURE 2, the lattice vector quantization of classification and coding process comprises the following steps.
Step 201, the quantization amplitude envelope value of the coding subband is used to perform normalization processing on all frequency domain coefficients in the coding subband, and all frequency domain coefficients are grouped together to form several vectors to be quantized. ^ Thq (j) l2 The quantization amplitude envelope 2 of the coding subband is already used to perform normalization processing on all frequency domain coefficients Xj in the coding subband: y normalized
wherein, the 8 continuous frequency domain coefficients in the coding subband are grouped together to form 1 8-dimensional vector. Based on the division of the coding sub-band in table 1, the coefficients in the coding sub-band j are precisely grouped to form vectors of 8 dimensions Lattice_D8 (j). Each vector to be quantized from 8 dimensions grouped and normalized can be represented as 5 j, where, m represents the location of the 8 dimension vector in the coding subband, whose range is between 0 and Lattice_D8 (j) -1.
Step 202, it is judged whether the number of allocated bits of the coding subband j region_bit (j) is less than the preset threshold value 10, if yes, the coding subband is the low bit coding subband , and step 203 is performed, i.e. the quantization of the pyramid lattice vector is used to quantize, and step 205 is performed to code after quantization; otherwise, the sub-coding sub-band is the high-bit coding sub-band, step 204 is performed, that is, the quantization of sphere reticulum vector is used to quantize, and step 206 is performed after the quantization for coding.
Step 203, the low bit encoding subband is quantized with the vector quantization of the pyramid lattice. In the example, the preset threshold value is 5, that is, the number of bits allocated in the low bit coding subband j meets: l <= region_bit (j) <5. In the example, the 8-dimensional lattice vector based on the lattice point Da is used to quantize, where, the lattice point Ds is defined as follows:
In which, Z 'represents the integer space 30 of 8 dimensions. The basic method for mapping the 8-dimension vector (ie, quantized to) to the crosshair point DB is described as follows: x is assumed to be an arbitrary real number, f (x) represents the rounded quantization to the integer 5 which is closest to x of the two adjacent integers ax, w (x) represents the rounded quantization to the integer that is furthest from x of the two integers adjacent to x. For any vector ^ T = (x ,, x2, ..., x8) and / 8, j X) = (/(Xj),/(x2),...,/(x8)) can be 10 similarly defined. The minimum subscript in the components with the maximum absolute value of the rounded quantization error is selected in f (X) and is noted as k, then g (j £ r) = (/ (x1), / (x2), .. .w (xA), ..., / (x8)) is defined, so one and only one among f (x) or g (X) is the crosshair point Ds, and crosshair DB is:
The quantization vector quantization process of the energy subband is performed on the re <jion_bit (j), of bits allocated in a frequency domain coefficient in the coding subband j in which the vector to be quantized is 25 located, a codebook sequence number (index) and an energy scaling factor (scale) that correspond to the number of bits are consulted in table 2 below; then the energy regulation is performed on the vector to be quantized according to the following equation: ZZcaie = (y / scale (index) 50/104 in ym which, represents the mth vector to be quantized from 8 dimensions normalized in the sub - coding band vm j '1 j, scale represents a vector of 8 dimensions after performing energy regulation in ym 1J • a = (2'6.2 "6.2'6.2-6.2" 6, 2-6.2 “6.2" 6). It should be noted that the following table 2 is obtained based on statistics, and the statistical method is: first, limit scale to a certain range and use a specified stage extension of 1 to calculate the 10 mean square error value that corresponds to the vector quantization of the pyramid lattice and the inverse quantization under a certain condition of quantization bit number when a corresponding step extension is adopted, and to search for a range of specified area where the scale value that 15 corresponds to the minimum mean square error value is located, and use a special step extension cified 2 to search for the mean square error value that corresponds to the vector quantization of the pyramid lattice and inverse quantization under a certain condition of the 20 quantization bit number, and to search for a scale value that corresponds to the square error value minimum average, which is the corresponding scale value under a certain quantization bit condition. Table 2 Corresponding relationship between the number of the 25 bits of pyramid lattice vector quantization, the code book sequence number, the energy scaling factor and the maximum pyramid surface energy radius


Step 203b, the energy regulated vector is quantized to the crosshair point. The energy-regulated vector is first 5 quantized to the crosshair point, and then it is judged whether the pyramid surface energy of the quantized ym crosshair point 1 j is less than or equal to the maximum pyramid surface energy radius in the code book of coding, if yes, proceed to step 203c, otherwise, perform energy truncation on the energy regulated vector and then perform the quantization of the crosshair point. Quantize the 8-dimension vector regulated by, Vm energy ^ 7jica / ea to the crosshair point D8 1 j: ym ~ f (Ym) 1 j J j, scale '15 where, / D8 (*) represents a quantization operator for map a certain 8-dimension vector to the crosshair point Ds. The pyramid surface energy of the DB 1 j crosshair point is calculated and compared to the maximum pyramid surface energy radius in the coding code book. The pyramid surface energy of the lattice point ym DB 1 j θ is the sum of the absolute values of all yw components of 1 j. The coding codebook means the set of all crosshair points D8 used to quantize the vector to be quantized. If the pyramid surface energy of the ym 5 lattice point DB 1 j is not greater than the maximum LargeK pyramid surface energy radius (index), step 203c is directly performed, and the lattice quantization index in the code book is calculated. If the pyramid surface energy of the point of ym 10 reticle1 j is greater than the maximum pyramid surface energy radius, an energy truncation is performed on a vector ym to be quantized regulated £ j, scale da- subband encoding until the energy of the vector quantization lattice point to be quantized regulated by energy 15 is not greater than the maximum pyramid surface energy radius; at the moment, an energy is continuously added to the vector to be quantized truncated by energy until the energy of the lattice point Ds at which the vector is quantized is greater than the maximum pyramid surface energy radius; the last lattice point O8 whose energy is not greater than the maximum pyramid surface energy radius is determined to be the quantization value of the vector to be quantized, that is, whether the lattice point generates the vector index of quantization. 25 When the energy of the crosshair point 1j is greater than the maximum pyramid surface energy radius, the specific process of energy truncation in the vector to be quantized can be described in the following pseudocode: 53/104 calculate the energy of pyramid surface of vm 1 crosshair point D8 ie solve the sum of the absolute ym values of each component of 1 j: temp _K = sum {Y ™) Ybαk = Ym Kbαk - temp _ K If temp_K> LargeK (index) While temp_K> LargeK {index) Ybαk = Y ”1 Kbαk = temp _ K While temp_K <= LargeK (index) Ybαk = Ym Kbαk = temp _ K rm _ ym, j, scale j, scale '8 temp _K = sum ( Y "1)}} 7 / = Ybak temp _K = Kbcik At the moment, Y ™ is the last crosshair point L> 8 whose energy is not greater than the maximum pyramid surface energy radius, and temp _K is the energy of the crosshair points Step 203c, the vector quantization index of the ym crosshair point Dβ * j in the codebook is calculated The step of calculating the ym quantization index ve lattice point tor D8 1 j in the code book comprises: step 1, mark the lattice point on each pyramid surface respectively according to the size of the pyramid surface energy. For the integer crosshair point grid ZL whose dimension is L, the pyramid surface with the energy radius being K is defined as: z. S (Z, ^) = {y = (jz15y2 „.., ^) eZL I ∑lzl = K} / =! Note that N (L, K} is the number of crosshair points noS (L, K}, and for the integer grid ZL, the following resource formulas are for N (L, K): 2V (Z , 0) = l (Á> 0), N (Q, K) = 0 (K> 1) N (L, K) = N (L - , K) + N (L - , KV) + N (L, KV) (Z,> 1, ÂT> 1). For the integer crosshair point 7 - (yl, y2, -, yí) and on the pyramid surface with the energy surface radius being K, a number b in [0.1, ...., N (L, K) - 1] is used to identify, and b is called a crosshair point identifier, and the steps to resolve identifier b are as follows: 5 step 1.1, leave b = ODi = 10k = KDl = L, calculate (m <= L, n <= K) according to the recursion formulas, and define:
step 1.3, k = k- | yt | , 1 = 1-1, 1 = 1 + 1, if k = 0 now, stop the search, b (j, m) = b, which is the identifier of Y, otherwise, continue with step 1.2; step 2, identify the numbers evenly for the crosshair point on all pyramid surfaces; where the identifier of each crosshair point on all pyramid surfaces is calculated according to the number of the crosshair point on each pyramid surface and the identifier of the crosshair point on its own pyramid surface, K-2
kk = Q where, kk is an even number, b (j, m) is the lattice point identifier D8 on the surface of the pyramid ym on which the lattice point Da 1j is located, and ym index_b (j, m ) is the index of the crosshair point Da 1j in the code book, that is, the index of the 8 th vector dimension in the coding subband j. 5 step 203d, the above steps 203a ~ 203c are repeated until the calculation of the vector quantization index is completed for each 8-dimension vector of each of the coding subbands with the number of the coded bits being greater than 0, but less than the threshold value 10 5.
Step 204, the quantization is performed on the high bit coding subband in the sphere lattice quantization The number of bits allocated in the high bit coding subband 15 satisfies 5 <= region_bit (j) <= 9. At this point , 8-dimensional lattice vector quantization based on the De lattice is also used. The process for performing the sphere reticule quantization in the vector to be quantized of the high-bit coding subband 20 comprises: Step 204a, the energy regulation is carried out in the vector to be quantized. The following energy regulation is carried out on the normalized m ° vector to be quantized Y ™ in subband 25 coding j: Y ”= β (Y ^ -a) where, a = (2'6,2'6,2 '6.2-6.2'6.2'6.2'6.2 * 6) ü
and scale (region _bit (JY) represents the energy scaling factor when the number of bits allocated to a frequency domain coefficient in the coding sub-band is region_bit {j), and the corresponding relationship between them can be found according to with table 3. 5 The statistical way to obtain the table below 3 is the same as to obtain table 2 below. Table 3 Corresponding relationship between the number of allocated bits and the vector scaling energy quantization factor of the lattice vector
10 Step 204b, the energy regulated vector is quantized to the crosshair point, and is judged as to the quantization value / 2reg '° "-é'z (7)), which is obtained after the crosshair point value of quantization is divided by 2 to a power of the number of bits allocated 2reg "'" - A "(7) and then 15 mapped to the crosshair point, it is a zero vector, if yes, proceed to step 204c , otherwise, the energy truncation is performed on the energy-regulated vector, and then the vector is quantized to the crosshair point; You must map the mth vector to be quantized 20 regulated by energy Y ™ in the coding subband j for the crosshair point D8 Yj = fDsY; y where, fQ * (•) represents a quantization operator to map a certain 8-dimension vector to the crosshair point D8. 2 5 It must be judged whether the value of quantization / ^ / '2, region ~ b “(jY'), which is obtained after the quantization lattice point value is divided by 2 to a power of the number of allocated bits 2reg"'"-4" (7) and then map for the crosshair point, it is a zero vector, that is, if all the components of the quantization value are zero, if yes, it refers to that the condition of zero vector is fulfilled, otherwise, it refers to that that the zero vector condition is not met. If the zero vector condition is fulfilled, then step 204c is performed directly. If the zero vector condition is not met, energy truncation is performed on the vector regulated by FA m ym _ y. In the example, the value of 1 j is divided by 2 until the vector condition zero / ^ / 2reg, 0 "_6, / ^) = o is met, m _ j itself is transferred to a backup copy to be w, then the low multiple backup value w is added to the energy vector y - m.j and then the vector is quantized to the crosshair point Dã, and will now be judged on whether a 2 0 zero vector condition is met If the zero vector condition is not met, the last crosshair point Da that meets the zero vector condition is taken as the vector quantization crosshair point to be quantized, if not, the multiple value backup low w is continuously added to the vector ly and then the quantized vector to the crosshair point Da, until the zero vector condition is not met. The specific energy truncation process of the vector a to be quantized can be described in the following pseudocode: temp_D = fDi (Y ”112region-bit (J)) Ybak = Y” Dbak = temp _ D 5 While temp_D ^ Q {Y ^ Y ^ / 2 temp_D = fDs (Y ”/ 2regi0"-bi'U)) 10} w = f; ”/ i6 Ybak = F; Dbak = temp _ D While temp _D = 0 15 {Ybak = Y ”Dbak - temp _ DY ^ Y ^ + w K = fDS ^ 20 temp_D = f ^ Y” / 2region-b, t ^)} Y; = Ybak Step 204c, the index vector of the quantization vector of the 5 10 15 20 Ym crosshair point D8 7 is generated. The quantization vector index can be obtained by the following index vector generation equation: k = (FymG'1) mod2re8'on-W) Ym The vector index k of the crosshair point De J is now emitted, where G is the matrix generating the crosshair point Dg, and its shape is as follows:

Step 205, the vector quantization index of the low bit encoding subband is encoded; and the stage ends. As followed below, the number of bits allocated in the low bit encoding subband fulfills: l <= region_bit (j) <5. Performing the coding on the vector quantization index of the low bit coding subband comprises the following steps: step 205a, Huffman coding is performed on the vector quantization index of the low bit coding subband. Huffman coding is performed on the vector quantization index in set C composed of all coding subbands in which the number of bits allocated to a single frequency domain coefficient is less than a certain threshold value. The quantization index of the vector index_b (j, k) of each vector of 8 dimensions in each coding sub-band is obtained based on the quantization of the pyramid lattice vector, where, k represents the k-th vector of 5 8 dimensions of the coding subband j. Performing the Huffman coding on the quantization index index_b (j, k) comprises the following scenes: a. in all coding sub-bands in which the number of bits allocated in a domain frequency coefficient of 10 frequency is greater than 1, less than 5 and except 2, every four bits in the natural binary codes for each quantization index of the vector is divided and a group and the Huffman coding is performed in that group, and the sum of the numbers of bits of the Huffman coding for all groups of 4 bits 15 is the number of bits consumed in the Huffman coding of the quantization index; B. in all coding subbands in which the number of bits allocated to a frequency domain coefficient is 2.15 bits are used for the pyramid vector quantization index lattice of each 8-dimension vector to encode; the 15 bits are divided into 3 groups of 4 bits and 1 group of 3 bits, so the Huffman encoding is performed in the groups, the sum of the number of bits consumed from the 4 25 Huffman encoding groups is the number of bits consumed in the Huffman coding of the quantization index; ç. when the number of bits allocated in a coding subband frequency domain coefficient 30 is 1, if the quantization index is less than 127, then the quantization index is encoded with 7 bits, those 7 bits are divided into 1 group of 3 bits and 1 group of 4 bits, the Huffman coding is performed respectively in the two groups, the sum of the numbers of bits consumed in the two Huffman coding groups is the number of bits consumed in the Huffman coding of the index of quantization; 5 d. when the number of bits allocated in a coding subband frequency domain coefficient is 1, if the quantization index is equal to 127, then your own natural binary code is defined as "1111 1110", 7 numbers 1 in front are divided into 1 group 10 of 3 bits and 1 group of 4 bits, Huffman encoding is performed respectively in the two groups, the sum of the numbers of bits consumed in the two groups of Huffman encoding is the number of bits consumed in the encoding of Huffman's quantization index; 15 and, when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 128, then your own natural binary code is defined as "1111 1111", 7 numbers 1 in the front are divided into 1 group 20 of 3 bits and 1 group of 4 bits, Huffman coding is performed respectively in the two groups, the sum of the numbers of bits consumed in the two groups of Huffman coding is the number of bits consumed in the Huffman coding of the quantization index. 25 The method of carrying out the Huffman coding in the quantization index can be described in the following pseudocode: in all coding sub-bands of region_bit (j) = 1.5 and 2 <region_bit (j) <5, 30 {n is in the range of [0, region_bi t (j) x8 / 4 - 1], it is increased with the extension step being 1 and the following cycle is performed: {leave index_b {j, k) shift in the right direction to 4 * n bits, Calculate the 4 low tmp bits of index_b (j, k), that is tmp = e (index_b (j, k), 15) Calculate the tmp code word in the code book and the bit consumption number of it : plvq_codebook (j, k) = plvq_code (tmp + 1); plvq_count (j, k) = plvq_bit_count (tmp + 1); where, plvq_codebook (j, k) and plvq_count (j, k) are, respectively, the code word and the bit consumption number in the k-th 8th dimension vector Huffman coding codebook of the j-nth sub-band; plvq_bit_count and plvq_code are searched based on table 4. The total number of bit consumption after Huffman encoding is used is updated: bit_used_huff_all = bit_used_huff_all + plvq_bit_count (tmp + 1); } In the coding subband of region_bit (j) = 2 {n is in the range of [0, region_bit (j) x8 / 4 - 2], it is increased with the extension step being 1, and the following cycle is performed: { Let index_b (j, k) move towards the right by 4 * n bits, Calculate the 4 low tmp bits of index_b (j, k), ie tmp = and (index_b (j, k), 15) Calculate the word tmp code in the codebook and the bit consumption number of the same: plvq_count (j, k) = plvq_bit_count (tmp + 1); plvq_codebook (j, k) = plvq_code (tmp + 1); where, plvq_codebook (j, k) and plvq_count (j, k) are Huffman's bit consumption number and code word for the kth th 8-dimension vector of the jth subband; plvq_bit_count and plvq_code are searched based on table 4. The total number of bit consumption after Huffman encoding is used is updated: bit_used_huff_all = bit_used_huff_all + plvq_bit_count (tmp + 1); } {A 3-bit condition is required to be processed below: after index__b (j, k) is shifted towards the right to [region__bit (j) x8 / 4 - 2] * 4 bits, calculate the low 3 bits tmp of index_b (j, k), that is tmp = and (index_b (j, k), 7) calculate the tmp code word in the code book and its bit consumption number: plvq_count (j, k) = plvq_bit_count _r2_3 (tmp + 1); plvq_codebook (j, k) = plvq_code _r2_3 (tmp + 1); where, plvq_count (j, k) and plvq_codebook (j, k) are, respectively, the number of bit consumption and Huffman and the code word of the kth vector of 8 dimensions of the jth subband; plvq_bit_count_r2_3 and plvq_code_r2_3 are searched based on table 5. The total number of bit consumption after Huffman encoding is used is updated: bit_used_huff_all = bit_used_huff_all + plvq_bit_count (tmp + 1); }} In the coding subband of region_bit (j) = 1 {If index_b (j, k) <127 {{Calculate the 4 low bits trap of index_b (j, k), that is tmp = and (index_b (j, k), 15) Calculate the tmp code words in the code book and the bit consumption number of the code: plvq_count (j, k) = plvq_bit_count _rl_4 (tmp + 1); plvq_codebook (j, k) = plvq_code _rl_4 (tmp + 1); where, plvq_count (j, k) and plvq_codebook (j, k) are, respectively, Huffman's bit consumption number and code words for the k-th 8-dimensional vector of the j-th subband; plvq_bit_count_rl_4 and plvq_code_rl_4 are searched based on table 6. The total number of bit consumption after Huffman encoding is used is updated: bit_used_huff_all = bit_used_huff_all + plvq_bit_count (tmp + 1); } {A 3-bit condition is required to be processed below: Let index_b (j, k) shift to the right by 4 bits, Calculate the low 3 bits tmp of index_b (j, k), ie tmp = and (index_b (j, k), 7) Calculate the tmp code word in the code book and the bit consumption number of it: 5 plvq_count (j, k) = plvq__bit_count _rl_3 (tmp + 1); plvq_codebook (j, k) = plvq_code _rl_3 (tmp + 1); where, plvq_count (j, k) and plvq_codebook (j, k) are, respectively, the Huffman bit consumption number and code word of the k-th 8-dimensional vector of the j-th 10 subband; the code book plvq_bit_count_rl_3 and plvq_code_rl_3 are searched based on table 7. The total number of bit consumption after Huffman coding is used is updated: bit_used_huff_all = bit_used_huff_all + 15 plvq_bit_count (tmp + 1); }} If index_b (j, k) = 127 {its binary value is "1111 1110" 20 For the three "numbers 1" in front of the last four "numbers 1", the Huffman tables in table 7 and table 6 are respectively researched. The calculation method is the same as that under the previous condition of index_b (j, k) <127. 25 The total number of bit consumptions after Huffman encoding is used is updated: a total of 8 bits are required. } If index_b (j, k) = 128 30 {its binary value is "1111 1111" For the three "numbers 1" and the last four "numbers 1", the Huffman tables in table 7 and table 6 are respectively searched , the calculation method is the same as under the previous condition of index_b (j, k) <127. The total number of bit consumption after Huffman encoding is used is updated: a total of 8 bits is required. } Table 4 Huffman code table vector pyramid quantization
10 Table 5 Vector Huffman code table
Table 6 Pyramid quantization vector Huffman code table

Table 7 Vector Huffman code table
When Huffman coding is performed on the quantization index of the lattice pyramid vector of 5 for all coding subbands, different codebooks are used to encode the vector quantization index of the coding subband according to the number of bits allocated to a frequency domain coefficient in the coding subband.
Step 205b, it is judged whether Huffman encoding saves bits, if yes, Huffman encoding is used for the quantization index, and step 205c is performed, otherwise, natural coding is performed on the quantization index. By step 205a, the total number of bits consumed 15 by the quantization indices encoded by Huffman belonging to the 8-dimension vector of all C bit used _huff _all coding sub-bands is calculated. The bit _used _huff _all is compared to the sum of bits consumed by all coding subbands in C sum (bit _bcmd _used (J), j eC), that is, compared to the sum of products 5 of the number of domain coefficients of frequency of all C coding subbands and the number of bits allocated to a frequency domain coefficient in the coding subband. If bit _used _huff _all <sum (bit _band _used (j), j eC), the bits of the quantization index encoded by Huffman is 10 transmitted, and in the meantime, the Huffman encoding frequency domain coefficient indicator Flag_huf £ _plvq is set to 1; otherwise, natural coding is performed on the quantization vector index, and the Huffman coding frequency domain coefficient indicator 15 Flag_huff_j lvq is set to 0.
Step 205c, the bit allocation modification is performed, and vector quantization and encoding is performed again on the coding subband for which the bit allocation has been modified. 20 If the Huffman encoding frequency domain coefficient indicator Flag_huff_plvq is 0, the bit allocation of the encoding subband is not modified. If the Huffman encoding of the Flag_huff_plvq frequency domain coefficient indicator is 1, bit allocation 25 of the encoding subband is modified with the bits saved by Huffman encoding. When the bit allocation of the coding subband is modified, in the example, the bit modification step length and the weight reduction step extension after the 30 bit modification of the low bit coding subband are, both, 0.5; the length of the bit increase step and the length of the step of reducing weight after the bit increase of the zero bit coding subband and high bit coding subband are both 1. The coding subband of low bit is a coding subband in which the number of bits allocated to a frequency domain coefficient is less than a preset threshold value, and the high bit coding subband is a coding subband in which the number of bits allocated to a frequency domain coefficient is greater than or equal to a preset threshold value. The zero bit coding subband is called a coding subband in which the number of bits allocated in a frequency domain coefficient is zero. As shown in Figure 3, the bit allocation modification process of step 205c specifically comprises the following steps: step 301, calculating the number of bits saved by Huffman encoding diff_huff, leaving count = 0: diff _ huff - sumfbit _ band _ used (j), je C) - bit _ used _ huff _ all. If diff_huff is greater than 0, it means that Huffman encoding can save bits, and the number of bits saved by Huffman encoding is the number of bits that can be used when modifying bit allocation is performed in the encoding subband . Step 302, find the coding subband with maximum importance in all coding subbands; find the maximum value rk (jx) in each rk (j) üj = O, ..., Lülü, which is represented in the equation: Ã = argmax [rk (j)] J = O, -, L-
Step 303, judge whether the number of bits allocated from the coding subband with maximum importance plus lüregion_bit (jk) + lüé less than or equal to the maximum number of coded bits that can be allocated in a frequency domain coefficient in the coding subband MaxBit (for example, MaxBit = 9), if yes, proceed to step 304, otherwise, adjust the importance of the coding subband corresponding to jk to the lowest (for example, leaving rk (jk) = ül00), which represents that the bit allocation value of the coding subband does not need to be modified and then proceed to step 302. If the number of bits allocated in the coding subband with maximum importance has reached the maximum value of the number of bits that can be allocated, the importance of the coding subband is set to the lowest, and the bit allocation value is not changed for the coding subband. Step 304, judge whether diff_huffD (region_bit (jk) +1) xBandWidth (jk) is greater than or equal to 0, if yes, indicate that the number of bits saved is enough to carry out the modification of bit allocation in the subband encoding, and proceed to step 305; otherwise, finish the bit allocation modification process.
Step 305, judge whether the number of bits allocated region_bit (jk) is equal to 0, or greater than or equal to the limit 5, if yes, proceed to step 306, otherwise, proceed to step 307.
Step 306, modify the number of bits allocated in the coding subband jk region _bit (jk) to make the region_bit (jk) = region_bit (jk) +1, reduce the value of the importance of the subband rk (jk) to make rk (jk) = rk (jk) -1; leave the bit allocation change iteration number count = count + l, and perform vector Huffman quantization and coding on the jk coding subband and finally update the diff_huff value.
Step 307, modify the number of bits allocated in the 72/104 coding subband jk region _bit {jk) to make region_bit (jk) = region_bit (jk) +0.5; reduce the value of the importance of the sub-band rk (jk) to make rk (jk) = rk (jk) -0.5; leave count = count + l, and perform vector Huffman quantization and coding 5 on the coding subband jk and finally update the diff_huff value. Vector quantization and encoding are performed again in the encoding subband for which the bit allocation has been modified, and if Huffman's encoding saves 10 even more bits than natural encoding, the saved bits are additionally used for modifying bit allocation of the encoding subband.
Step 308, judge whether the number of bit count allocation modification iterations is less than Maxcount, if yes, skip to step 302, otherwise, end the bit allocation modification process. The Maxcount above is the upper threshold value for the number of bit allocation modification iterations, which is determined by the encoded bit stream and the sampling rate of the same. In the example, Maxcount = 31 is used.
Step 206, the vector quantization index of the high bit encoding subband is encoded. The number of bits allocated in the high bit encoding subband j satisfies: 5 <= region_bit (j) <= 9. 25 0 index vector k = {kl, k2, k3, k4, k5, k6, k7, k8) is obtained after the 8-dimension vector in the coding subband whose number of coded bits is 5 to 9 is quantized, with each component of the vector index k being coded directly according to the number of bits allocated in a domain coefficient frequency to obtain the encoded bits of the vector. It can be seen from the statistical result that, under the condition of a sampling rate of 32kHz and a coding rate of 32kbps, 96% of all coding subbands are coding subbands with the number of allocated bits less than 5 That is, the possibility of using vector pyramid lattice quantization is 96% across vector quantization. Pyramid lattice vector quantization plays a very important role in the invention and uses a variable step extension bit allocation for a bit allocation, where the bit allocation step extension of a frequency domain coefficient can minimally set to half a bit, thus improving the bit usage efficiency. The identifier lattice point algorithm for the pyramid lattice vector quantization method of the low bit step extension in the invention has a low complexity and takes up little storage space. In addition, a new judgment rule is used for the codebook extension identifier in the reticulum vector sphere quantization of the high bit coding subband, thus further reducing the complexity of the vector quantization method. reticle. 2. DECODING METHOD
The audio decoding method of reticulum vector quantization in the invention is the reverse process of the encoding method, which comprises:
A. decoding the encoded bits of each amplitude envelope into a bit stream to be decoded to obtain an amplitude envelope quantization exponent for each encoding subband;
B. carry out the bit allocation in each coding subband, dividing the coding subbands into a low bit coding subband and a high bit coding subband according to the number of allocated bits of each subband coding band, performing decoding, inverse quantization and inverse normalization of the vector pyramid lattice quantization in the low bit coding subband, and perform decoding, inverse quantization and inverse normalization of the vector sphere quantization of 5 lattice in the sub - high bit coding band, and obtaining the frequency domain coefficients of the low bit coding subband and the high bit coding subband; where the low bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient is less than a preset threshold value, the high bit coding subband is a coding subband in which the number of bits allocated to a frequency domain coefficient is greater than or equal to a preset threshold value; 15 before the step of carrying out bit allocation in each coding subband, first calculate an initial value of importance for each coding subband according to the amplitude envelope value of the coding subband, and then perform the allocation bit in every 20 frequency domain coefficient in the coding subband according to the importance of each coding subband, and during bit allocation, the bit allocation step length and weight reduction step length after the bit allocation, both are variables. 25 After the bit allocation is performed and before decoding, the bit allocation modification is performed in the encoding subband to count times again, according to a value of the number of bit count allocation modification iterations and the importance of each coding subband 30 on one coding side. When the low bit coding subband is decoded, Huffman coding or direct decoding is performed on the low bit coding subband according to the Huffman coding frequency domain coefficient indicator on the coding side to obtain the index vector quantization of the low bit coding subband, and inverse quantization of the vector quantization of the pyramid lattice is performed on all vector quantization indices to obtain the frequency domain coefficient of the coding subband; when the high bit coding subband is decoded, the high bit coding subband is directly and naturally decoded 10 to obtain the vector quantization index of the high bit coding subband, and the inverse quantization of the quantization of reticulum vector sphere is performed on all quantization indices of the vector to obtain the frequency domain coefficient of the coding subband 15. C. perform an inverse modified discrete cosine transform (IMDCT) in the frequency coefficient after a noise loading to obtain a final audio signal. Figure 4 is a schematic diagram of the structure of the audio decoding method of quantizing the vector of the lattice according to the example of the invention. As shown in Figure 4, the method comprises the following steps. Step 401, the encoded bits of each amplitude envelope are decoded to obtain the amplitude envelope quantization exponent of each encoding subband. A coded bit frame is extracted from the coded bit stream 30 sent from the coding side (i.e., from the DeMUX bit stream demultiplexer); after the encoded bits are extracted, the side information is decoded first, and then the encoded bits of each amplitude envelope in the frame are decoded by Huffman or directly decoded, according to the value of the Huffman encoding indicator of amplitude Flag_huff_rms to obtain the quantization exponent 5 of the amplitude envelope of each coding subband Thq (j) □ j = 0 / ..., Lül. Step 402, bit allocation is performed in each coding subband. The initial importance value of each coding subband 10 is calculated according to the amplitude envelope quantization exponent of each coding subband, and the importance of the coding subband is used to perform the bit allocation in each coding subband to obtain the number of bits allocated in the coding subband; the allocation of bit s on the decoder side and on the encoder side are the same. During bit allocation, the bit allocation step length and the coding subband weight reduction step length after bit allocation are both variable. 20 After the above bit allocation process is complete, the bit allocation modification is performed in the encoding subband for count times again, according to the value of the number of bit count allocation modification iterations and the importance of each coding subband 25 on the coding side, and then the bit allocation process is finished.
During bit allocation and modification progress, the bit allocation step length and bit allocation change step length are both 30 1 bit when the bits are allocated in the coding subband with the number of bits allocated being 0, and the de-scaling step extension after bit allocation and bit allocation modification is 1. The bit allocation step extension and bit allocation modification step extension are both 0 , 5 bits when the bits are additionally allocated in the encoding subband, the number of bits allocated is greater than 0 and less than a certain threshold value 5, and the extent of the reduction step after the bit allocation and the bit allocation modification is also 0.5. The bit allocation step length and bit allocation modification step length are both 1 bit when the bits are allocated additionally to the encoding subband 10, the number of bits being allocated is greater than or equal to the threshold value , and the extent of downgrading step after bit allocation and bit allocation modification is also 1.
Step 403, all coding subbands are divided into low bit coding subbands and high bit coding subbands, according to the number of bits allocated in the coding subbands, that is, it is judged whether the number of bits allocated in the coding subband j region_bit (j) is less than a preset threshold value, if yes, the coding subband is a low bit coding subband, proceeding to step 404, otherwise, the coding subband is a high bit coding subband, proceeding to step 405.
Step 404, the low bit coding subband is decoded to obtain the pyramid lattice vector quantization index, and the lattice point Dg corresponding to the pyramid lattice vector quantization index is calculated, and the coefficient frequency domain of the low bit coding subband is obtained after inverse normalization is performed; proceeding to step 406.
Huffman decoding or direct natural decoding is performed on the low bit coding subband according to the side information to obtain the pyramid lattice vector quantization index of the low bit coding subband.
If Flag_huff_plvq = 0, natural decoding is performed directly to obtain the index of the mth vector quantization of the low bit coding subband j index_b (j, m); if Flag_huff_plvq = l, the index of the mth vector quantization of the low bit coding subband j index_b (j, m) is obtained according to the Huffman coding code table corresponding to the number of bits allocated in a coefficient frequency domain of the coding subband.
When the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if a value of the natural binary code of the quantization index is less than "1111 111", then the quantization index is calculated according to the value of the natural binary code; if the value of the natural binary code of the quantization index is equal to "1111 111", then the next bit is continuously read, if the next bit is 0, then the quantization value index is 127, if the next bit is 1 , then the quantization value index is 128.
The process of calculating the crosshair point Da corresponding to the index of the vector quantization of the pyramid crosshair is actually the reverse process of the vector quantization process, and the process of reverse quantization of the vector quantization of the pyramid crosshair is as follows:
Step 404a), the energy pyramid surface on which the vector quantization index is located and the identifier on the energy pyramid surface are determined: seek a kk in the pyramid surface energy from 2 to LargeK (region_bit ( j)) to fulfill the difference below: N (8, kk) <= index_b (j, m) <N (8, kk + 2), if tai kk is found, then K = kk is the energy of the pyramid surface where the crosshair point Da corresponding to the quantization index index_b (j, m) is located, b = index_b (j, m) -N (8, kk) is the index identifier of the crosshair point Da on the pyramid surface . if no such kk is found, the pyramid surface energy of the lattice point Da corresponding to the quantization index index_b (j, m) K = 0 and the index identifier b = 0. step 404b), the specific procedures for solving the crosshair point vector Da Y = (yl, y2 y3, y4, y5, y6, y7, y8,) whose pyramid surface energy is K and the index identifier is b they are as follows: step 1, leave Y = (0,0,0,0,0,0,0,0), xb = 0, i = 1, k = K, 1 = 8; step 2, if b = xb then yi = 0; skip to step 6; step 3, if b <xb + N (1-1, k), then yi = 0, and skip to step 5; or, otherwise, xb = xb + N (l-l, k); leave j = 1; step 4, if b <xb + 2 * N (l-l, k-j), then if xb <= b <xb + N (l-l, k-j), then yi = j; if b> = xb + N (1-1, k-j), then yi = -j, xb = xb + N (l-l, k-j); otherwise, xb = xb + 2 * N (1-1, k-j), j = j + l; continue the step; step 5, update k = k- | yi |, 1 = 1-1, i = i + l, if k> 0, then skip to step 2; step 6, if k> 0, then y8 = k- | yi | , Y = (yl, y2, ..., y8) is the resolved crosshair point. Step 404c) Reverse energy regulation is performed at the crosshair point D8 resolved to obtain Y ™ = (Y + a) / scale (jndex) where, a = (2-6! 2'6,2'6,2 '6.2'6.2'6) 2'6.2'6), SCClle (Index) is a scaling factor, which can be found in Table 2. Step 404d), normalization processing j to obtain the frequency domain coefficient of the mth vector in the coding subband j recovered by the decoder side: io = 2Th '! ÜV2% Yjm where, Thq (j) ê. an amplitude envelope quantization exponent of the j-th coding subband.
Step 405, a decoding, inverse quantization and inverse normalization of the lattice vector sphere quantization 15 are performed on the high bit coding subband to obtain the frequency domain coefficients of the high bit coding subband. Natural decoding is performed directly on the encoded bits of the high bit coding subband to obtain the mth k vector index of bit j encoded by high bit. The process of carrying out inverse quantization of the reticulum vector sphere quantization in the index vector is, in fact, the inverse process of the quantization process, the specific steps being as follows: 25 step 405a), calculate x = k * G and calculate ytemp = x / (2A (region_bit (j)); where k is the vector quantization index vector, where region _bit (j ') represents the number of bits located in a frequency domain coefficient in the coding subband j; G is the generating matrix 30 of the lattice point Ds and the shape is as follows:
step 405b) f calculate y = x-fD8 (ytemp) (2A {region_bit (j)); step 405c), perform reverse energy regulation at the crosshair point Ds resolved to obtain ÍÇ "= ^ * sca / e (region_Wí (j)) / (2's""-“ü>) + a where a = (2 '6.2'6.2'(>,2'6.2'6.2-6.2"6.2 ^), scale (region_bit (jy) is the scaling factor and can be found in Table 3. step 405d), perform the vm. processing, inverse normalization in ■ fy to obtain the frequency domain coefficient of the mth vector in the coding subband j recovered by the decoder side: my ”m J ~ Z & J where , Thq (j) is an exponent of envelope quantization of amplitude of the j-th coding subband.
Step 406, the frequency domain coefficients of all coding subbands are sequenced according to the frequency amplitude, and the loading of noise and bandwidth extension are performed in the subbands with no allocated bits encoded in the process encoding or sub-bands lost in the transmission process.
Step 407, IMDCT (Inverse Modified Discrete Cosine Transform) is performed on the frequency domain coefficient after the noise filling and the bandwidth extension is performed to obtain the final emitted audio signal. 3. ENCODING SYSTEM
To implement the above coding method, the invention also provides a reticulum vector quantization audio coding system, as shown in Figure 5, the system comprising a modified discrete cosine transform unit (MDCT) 51 , an amplitude envelope calculation unit 52, an amplitude envelope quantization and encoding unit 53, a bit allocation unit 54, a normalization processing unit 55, a lattice vector quantization and encoding unit of rating 56 and a bit stream multiplexer (MUX) 57. Wherein, the MDCT unit is configured to perform MDCT on an audio signal to generate frequency domain coefficients; the amplitude envelope calculation unit is connected to the MDCT unit and is configured to divide the frequency domain coefficients generated by the MDCT unit into several coding subbands, and to calculate an amplitude envelope value for each coding subband; when dividing the coding subband, the amplitude envelope calculation unit divides the frequency domain coefficients after the MDCT into several equally spaced coding subbands, or divides them into several non-uniform coding subbands according to the audit perception feature.
The amplitude envelope quantization and encoding unit is connected to the amplitude envelope calculation unit and is configured to quantize and encode the amplitude envelope value of each coding subband to generate the encoded bits of the amplitude envelope for each coding subband.
The bit allocation unit is connected to the amplitude envelope encoding and quantization unit and is configured to perform bit allocation to obtain the number of encoded bits allocated to each frequency domain coefficient in each encoding subband.
Specifically, the bit allocation unit comprises an importance calculation module and a bit allocation module connected to each other, where the importance calculation module is configured to calculate an initial importance value for each subband encoder, according to the amplitude envelope value of the encoder subband; the bit allocation module is configured to perform bit allocation in each frequency domain coefficient in each coding subband according to the importance of each coding subband, in which, during bit allocation, the extension of the bit allocation step and the extent of the weight reduction step after the bit allocation are both variables.
The initial importance value is calculated according to an optimal bit value under the maximum quantization signal for noise gain condition and a scaling factor compliant with the audit perception characteristic, or is the quantization exponent Thq (J} or | _μxlog2 [77z (j)] + yJ of each amplitude envelope encoding subband, where μ> Q, and μ and v are both real numbers.
The importance calculation module is configured so that, when calculating the initial value of importance, it first calculates an average bit consumption value of a frequency domain coefficient; then calculates an optimal bit value under the maximum quantization signal for noise gain condition, according to a code rate distortion theory; then calculate the initial importance value 5 of each coding subband in the bit allocation according to the average bit consumption value and the optimal bit value; the bit allocation module is configured to perform bit allocation in each coding subband, according to the importance of each coding subband, 10 increasing the number of coded bits of each frequency domain coefficient in the subband encoder with the maximum importance, and decrease the importance of the coding subband until the sum of the bit numbers consumed by all the coding subbands fulfills the maximum value 15 under the condition of the bit limitation.
When the bit allocation module performs bit allocation, the bit allocation step length and weight reduction step length after bit allocation of the low bit coding subband is 20 less than the length of bit allocation step and the extension of downgrade step after bit allocation of the zero bit coding subband and high bit coding subband. For example, when the bit allocation module performs bit allocation, the extension of 25 bit allocation step and the de-scaling step extension after bit allocation of the low bit coding subband are both 0 , 5; the bit allocation step length and the unweighting step length after bit allocation of the zero bit encoding subband 30 and high bit encoding subband are both 1. The normalization processing unit is connected to the MDCT unit and is configured to use the quantization amplitude envelope value of the coding subband to perform normalization processing on all frequency domain coefficients in each coding subband.
The crosshair vector quantization and coding unit is connected to the normalization processing unit and the bit allocation unit is configured to perform quantization and coding on the normalized vectors to be quantized in a low bit coding subband and a high bit coding subband, respectively, in a pyramid lattice vector quantization and a lattice vector sphere quantization to obtain the encoded bits of the frequency domain coefficient; where, the low bit coding subband is a coding subband in which the number of bits allocated to a frequency domain coefficient is less than a preset threshold value, the high bit coding subband is a coding subband in which the number of bits allocated to a frequency domain coefficient is greater than or equal to a preset threshold value.
The bit stream multiplexer (MUX) is connected to the amplitude envelope quantizer and encoder unit and to the classification lattice vector quantizer and encoder unit and is configured to multiplex the encoded bits of each encoder subband and the encoded bits frequency domain coefficients and send them to a decoding side.
The classification lattice vector quantizer and encoder unit is described in detail with reference to Figure 6: as shown in Figure 6, the classification lattice vector quantizer and encoder unit comprises a classification processing module 61, a quantization module of pyramid lattice vector 62, a sphere lattice vector quantizer module 63, an encoder type judging module 64, a Huffman encoder module 65, a natural encoder module 66 and a bit allocation modifier module 67, where, the classification processing module is connected to the normalization processing unit and is configured to group the normalized frequency domain coefficients in order to form a vector to be quantized from 8 dimensions, and forward the vector to be quantized from the subband low bit encoder for the pyramid lattice vector quantizer module and forward the vector to be quantized the normalized high-bit coding subband for processing in the sphere reticulum vector quantizer module; the pyramid lattice vector quantizer module is connected to the classification processing module and configured to perform the pyramid lattice vector quantization on the vector to be normalized from each low bit coding subband; the pyramid lattice vector quantizer module comprises a first energy regulating sub-module 621, a first lattice point quantizing sub-module 622, a first energy adjustment sub-module 623 and a quantization index calculation sub-module 624, where, the first energy regulating sub-module is configured to perform energy regulation in a vector to be quantized from 8 dimensions in the coding subband; the first energy regulating sub-module is additionally configured so that, when performing energy regulation on the vector to be quantized in 8 dimensions, first search the previous table 2 for a codebook sequence number index and a scale of energy scaling factor that corresponds to the number of bits according to the number of bits region_bit (j) allocated in a frequency domain coefficient in the coding subband j where the vector to be quantized of 8 dimensions is located; then, perform energy regulation on the vector to be quantized according to the following equation: Y; icale = (Y - ayScale (index) r 'mj represents the mth vector to be quantized, normalized from 8 dimensions in the sub -coding band j, Ij ^ caie represents a vector of 8 dimensions after ym the energy regulation is performed in, a = (2 ^, 2'6,2'6,2'6,2 ^, 2 ^, 2 ^, 2-0);
the first crosshair quantizer sub-module is connected to the first energy regulating sub-module and is configured to quantize the vector to be quantized from 8 dimensions at a crosshair point D8; when performing crosshair quantization, the first crosshair quantizer submodule quantizes, Vm the 8-dimension vector ij ^ fall into crosshair point D8 with an equation to follow: Ym - f (vm) j J j, scale J where, Á) 8 (*) represents a quantization operator to map a certain vector of 8 dimensions in relation to the lattice point D8; the first power adjustment sub-module is connected to the first cross-stitch quantizer sub-module and is configured to compare the energy of the O8 crosshair point with a maximum pyramid surface energy radius in the coding code book, if the energy of the lattice point Ds is less than or equal to the maximum pyramid surface energy radius, notify the quantization index calculation submodule to calculate a quantization index of the lattice point D8 in the code book; if the energy of the crosshair point Da is greater than the maximum pyramid surface energy radius, perform an energy truncation on the vector to be quantized regulated in the coding subband, and notify the first crosshair quantizer submodule to quantize the vector to be quantized of truncated energy in relation to crosshair point Ds until the energy of the vector quantization lattice point to be quantized of truncated energy is not greater than the maximum pyramid surface energy radius, and in the meantime , continuously add an energy to the vector to be quantized of truncated energy, and notify the first reticule quantizer submodule to quantize the vector to be quantized from added energy in relation to the lattice point Da up to the energy of the lattice point DQ to which the vector to be quantized of added energy is quantized to be greater than the maximum pyramid surface energy radius, and to notify the calculation submodule the quantization index to calculate the quantization index of the last Da lattice point whose energy is not greater than the maximum pyramid surface energy radius in the codebook; the quantization index calculation module is connected to the first energy adjustment sub-module and is configured to calculate the quantization index of crosshair point D8 in the code book according to the notification of the first energy adjustment sub-module. The quantization index calculation sub-module is configured to, when calculating the quantization index of the lattice point D8 1 j in the code book, mark the lattice points on each pyramid surface respectively according to the amplitude of the energy of pyramid surface, then uniformly mark the crosshair point on all 5 pyramid surfaces, where the uniform mark is the yffl index of quantization of crosshair point D8 Ij in the code book. The sphere reticulum vector quantizer module is connected to the classification processing module and 10 is configured to perform sphere reticulum vector quantization in the vector to be quantized normalized in the high bit coding subband; the sphere crosshair vector quantizer module comprises a second energy regulating sub-module 631, a second cross-section quantizer sub-module 632, a zero vector condition judging sub-module 633, a second energy adjustment sub-module 634 and a sub-module for calculating the vector of index 635, in which the second energy regulating sub-module is configured to perform energy regulation in the vector at 20 to be quantized in 8 dimensions in the coding subband; When performing energy regulation on the vector to be quantized in 8 dimensions, the second energy regulating sub-module searches, first, for an energy scaling factor scale (region that corresponds to the number of bits according to the number of bits region_bi t (j) allocated in a frequency domain coefficient in the coding subband j where the vector to be quantized ly is located; then it performs the energy regulation in the mth vector to be quantized ly according to the equation a next: Vm ■ etn that, ij represents the normalized quantized maximum of 8 dimensions coding j, a = (2 ^, 2'6,2'6,2'6>2'6,2 ^, 2'6, 2 "6), r region_bit (j) β = ∑ □ scale (region _ bit (jJ) and scale (region _bit (jy) represents the energy scaling factor when the number of bits allocated in a domain coefficient of frequency in the coding subband is region_bit (j), and the corresponding relationship can be found based on table 3; the second point quantizer submodule crosshair is connected to the second energy regulating sub-module and is configured to quantize the vector to be quantized in 8 dimensions in relation to crosshair point L>8; the second lattice point quantizer submodule maps the mth vector to be quantized in the coding subband j with respect to the lattice point D8 1 j with the following equation: the zero vector condition judging submodule is connected to the second crosshair quantizer submodule and is configured to judge whether crosshair point Ds meets the zero vector condition, if yes, notify the index vector calculation sub-module to calculate the crosshair point index vector De; if not, notify the second energy adjustment sub-module to adjust the energy of the vector to be quantized; the condition of vector zero is to divide the lattice point value D8 obtained by vector quantization by 2 with respect to a power of the number of bits 2resion-bi, (J '> allocated <then, project in relation to the lattice point Ds , the projected crosshair point value D8 is a vector zero, where, region represents the number of bits allocated in a domain frequency coefficient of 5 in the jth coding subband; the second power adjustment sub-module is connected the zero vector condition judging submodule and the second crosshair quantizer submodule and is configured to perform energy truncation at a value 10 of the vector to be quantized, and notify the second crosshair quantizer submodule to quantize the vector a be quantized of truncated energy in relation to the crosshair point DQ until the zero vector condition is satisfied; and to back up a multiple value w of the vector itself to be quantized, and add the multi value backup example w to the vector to be quantized of truncated energy, and to notify the second reticule quantizer submodule to quantize the vector to be quantized of truncated energy in relation to the lattice point L »8 to the vector condition zero is not satisfied and to notify the index vector calculation sub-module to calculate a last index vector of crosshair point Ds that meets the zero vector condition; the index vector calculation sub-module is connected to the zero vector condition judging sub-module and the second energy adjustment sub-module and is configured to calculate the quantization index of the crosshair point Da in the code book according to notifications from the zero vector condition judging sub-module and the second energy adjustment sub-module. The index vector calculation sub-module calculates the vector quantization index vector k of the mth vector quantized in relation to the crosshair point D8 Y ™ in the jth coding subband according to the following equation: k = (y ”G'1) mod2re8 / o" -M7) where, region represents the number of bits allocated in a frequency domain coefficient in the coding subband j; G is the generating matrix of the crosshair point Dg and the shape is as follows:

The encoder type judging module is connected to the pyramid lattice vector quantizer module and is configured to judge whether the total number of bits consumed from the Huffman coded quantization indices of all low bit coding subbands is less than a number total bits needed to naturally encode the quantization indices of all low bit encoding subbands, if yes, notify the Huffman encoder module and bit allocation modifier module; if not, notify the natural encoder module.
The Huffman encoder module is configured to perform Huffman encoding on the quantization index of the low bit encoding subband, and adjust a frequency domain coefficient Huffman encoding indicator to be the one that Huffman encoding used. .
When the Huffman coding module performs Huffman coding in the quantization indices of all low bit coding subbands, in all coding subbands in which the number of bits allocated in a frequency domain coefficient is greater than 1 , less than 5 and not 2, every four bits in the natural binary codes for each vector quantization index are divided into a group and Huffman encoding is performed in that group, and the sum of the Huffman encoding bit numbers for all the groups of 4 bits is the number of bits consumed in the Huffman coding of the quantization index; in all coding subbands in which the number of bits allocated in a frequency domain coefficient is 2.15 bits are used to encode the pyramid lattice vector quantization index of each 8-dimension vector, and the 15 bits are divided into 3 groups of 4 bits and 1 group of 3 bits, so Huffman encoding is performed in groups, the sum of the bit numbers of the 4 groups consumed in Huffman encoding is the number of bits consumed in Huffman encoding the quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is less than 127, then the quantization index is encoded with 7 bits, which are divided into 1 group of 3 bits and 1 group of 4 bits, the Huffman coding is performed respectively in the two groups, the sum of the bit numbers of the two groups consumed in the Huffman coding is the number of bits consumed in the Huffman coding of the quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 127, then its own natural binary code is defined as "1111 1110", the 7 numbers 1 in the front are divided into 1 group of 3 bits and 1 group of 4 bits, Huffman encoding is performed respectively in the two groups, the sum of the bit numbers of the two groups consumed in the Huffman encoding is the number of bits consumed in the encoding of Huffman's quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 128, then its own natural binary code is defined as "1111 1111", the 7 numbers 1 are divided into 1 group of 3 bits and 1 group of 4 bits, the Huffman encoding is performed respectively in the two groups, the sum of the bit numbers of the two groups consumed in the Huffman encoding is the number of bits consumed in the Huffman encoding of the quantization index. When Huffman coding is performed on the quantization indices of all low bit coding subbands, different codebooks are used to encode the vector quantization index of the coding subband according to the number of bits allocated in a frequency domain coefficient in the coding subband. The natural encoder module is configured to perform natural encoding on the quantization index of the low bit coding subband and on the index vector of the high bit coding subband. The bit allocation modifier module is configured to use bits saved by Huffman coding to modify the number of bits allocated from the coding subband, and notify the sort processing module to perform vector quantization and coding again after sorting the sub -coding bands for which the bit allocation has been modified.
When performing bit allocation, the bit allocation modifier module searches for a coding subband with maximum importance in all coding subbands, if the number of bits allocated in the coding subband has reached the maximum value of the number of the bits possibly allocated, adjust the importance of the coding subband to be the lowest, and no longer modify the number of bits allocated to the coding subband, if not, carry out modification of bit allocation in the coding subband with the maximum importance; during bit allocation modification, the bit allocation modifier module allocates 1 bit in the coding subband with the number of allocated bits being 0, and reduces the importance by 1 after the bit allocation is performed; allocates 0.5 bits in the coding subband with the number of allocated bits being greater than 0 and less than 5, and reduces the importance by 0.5 after the bit allocation is performed; allocates 1 bit in the coding subband with the number of bits allocated being greater than 5, and reduces the importance by 1 after the bit allocation is performed.
After each time, the number of allocated bits is modified by the bit allocation modifier module, the bit count allocation modification iteration number is added to 1, if the number of bit count allocation modification iterations is reached, a preset upper threshold or the number of bits that can be used is less than the number of bits required for modifying bit allocation, the process of modifying bit allocation is terminated.
The order for the bitstream multiplexer to multiplex and pack the encoded bits is in sequence of an amplitude envelope Huffman encoding indicator, a frequency domain coefficient Huffman encoding indicator, the number of modification iterations of bit allocation, a coded bit of a 5 amplitude envelope, a coded bit of the frequency domain coefficient. 4. DECODING SYSTEM
To implement the decoding method above, the invention additionally provides a reticle vector quantization audio decoding system 10, as shown in Figure 7, the system comprises a bit stream demultiplexer (DeMUX) 71, a decoding unit encoding sub-band amplitude envelope 72, a bit allocation unit 73, a frequency domain coefficient decoding unit 15, a grading lattice vector quantization unit 75, a processing unit reverse normalization 76, a noise loading unit 77 and an inverse modified discrete cosine transform unit (IMDCT) 78, in which the bit flow demultiplexer (DeMUX) is configured to separate information side, one bit amplitude encoded bit and an encoded bit of frequency domain coefficient of a bit stream to be decoded; the amplitude envelope decoding unit is connected to the bit stream demultiplexer and is configured to decode the encoded bit of the amplitude envelope emitted by the bit stream demultiplexer to obtain the amplitude envelope quantization exponent of each sub- encoding band; the bit allocation unit is connected to the encoding subband amplitude envelope decoding unit and is configured to perform bit allocation to obtain the number of encoded bits allocated to each frequency domain coefficient in each encoding subband ; the bit allocation unit comprises an importance calculation module and a bit allocation module and a bit allocation modifier module, in which the importance calculation module is configured to calculate an initial value of the importance of each sub - coding band according to the encoding subband amplitude envelope value; the bit allocation module is configured to perform bit allocation in each frequency domain coefficient in each coding subband according to the initial importance value of each coding subband, where, during bit allocation, the length of the bit allocation step and the length of the weight reduction step after the bit allocation are both variable; the bit allocation modifier module is configured to carry out the bit allocation modification in the coding subband for count times again after the bit allocation is performed according to a value of the allocation number of iteration modification count bit and the importance of each coding subband on one coding side.
When the bit allocation module performs bit allocation, the bit allocation step length and weight reduction step length after bit allocation of the low bit coding subband are less than the step length of bit allocation and the extension of downscaling step after bit allocation of the zero bit coding subband and the high bit coding subband.
When the bit allocation modifier module performs bit modification, the extent of the bit modification step and the extent of de-scaling step after bit modification of the low bit encoding subband are less than the extent of the step bit modification and the reduction of the weight reduction step after bit modification of the zero bit coding subband and the high bit coding subband.
The frequency domain coefficient decoding unit is connected to the amplitude envelope decoding unit and the bit allocation unit and is configured to decode the low bit coding subband to obtain a subband quantization index. low bit encoder; and decoding a high bit coding subband to obtain the index vector of the high bit coding subband, where, the low bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient is less than a preset threshold value, the high bit coding subband is a coding subband in which the number of bits allocated to a frequency domain coefficient is greater than or equal to a pre-adjusted threshold value; the frequency domain coefficient decoding unit, when decoding in the low bit coding subband, performs Huffman coding in the low bit coding subband according to the frequency domain coefficient Huffman coding indicator on the encoding side or directly decodes the low bit coding subband to obtain the vector quantization index of the low bit coding subband; when decoding the high bit coding subband, it directly decodes the high bit coding subband to obtain the vector quantization index of the high bit coding subband.
The frequency domain coefficient decoding unit, when performing Huffman decoding in the low bit coding subband, and when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the value the natural binary code of the quantization index is less than "1111 1111", calculate the quantization index according to the value of the natural binary code; If the value of the natural binary code of the quantization index is equal to "1111 1111", then it continuously reads the next bit, where, if the next bit is 0, then the quantization index value is 127, if the next bit is 1, then the quantization index value is 128.
The sorting lattice vector quantization unit is configured to perform inverse quantization of the pyramid lattice vector quantization on the quantization index of the low bit coding subband, and to perform inverse quantization of the sphere lattice vector quantization. in the index vector of the high bit coding subband.
The inverse normalization processing unit is configured to perform inverse normalization in values after inverse quantization has been performed for the coding subband, and to obtain the frequency domain coefficient.
Specifically, inverse normalization is performed on to obtain the frequency domain coefficient of the mth vector of the coding subband j recovered on the decoding side: m (j) I 2 pqy m where, Thg (j) is a exponent of amplitude envelope quantization of the j-th coding subband.
The noise loading unit is configured to carry out noise loading in the subband in which no bits are allocated in the frequency domain coefficient emission value that is emitted by the inverse normalization processing unit; the reverse modified discrete cosine transform unit 10 (IMDCT) is connected to the noise loading unit and is configured to perform IMDCT on the frequency domain coefficient for which the noise loading was performed to obtain an audio signal. The sorting grid vector quantization inverse quantization unit is described in detail with reference to Figure 8. As shown in Figure 8, the sorting grid vector quantization reverse quantization unit comprises a sorting processing module 81 and an inverse quantization module of pyramid lattice vector quantization 82 and an inverse quantization module of sphere lattice vector quantization 83, where, 25 the classification processing module is configured to forward the quantization index of the low bit coding subband for processing in the inverse quantization module of pyramid lattice vector quantization, and forward the quantization index of the high bit coding subband 30 for processing in the vector reverse quantization module of sphere lattice. The inverse quantization module of pyramid lattice vector quantization is configured to perform inverse quantization on the quantization index of the low bit coding subband; wherein, the pyramid lattice vector inverse quantization module 82 comprises a first lattice point inverse quantization sub-module 821 and a first energy reverse regulation sub-module 822 which are connected, wherein, the first quantization sub-module inverse lattice point is configured to determine an energy pyramid surface on which the quantization index of the low bit coding subband is located and its marking on the energy pyramid surface and further resolves a corresponding Ds reticulum; 15 the first reverse energy regulation sub-module is configured to perform reverse energy regulation at the resolved crosshair point Ds, and obtain Y ™ = (7 + a) / scale (index) where, a =, Tb, SCClle (Index) ) is a scaling factor. The inverse quantization module of sphere reticulum vector quantization is configured to perform inverse quantization on the index vector of the high bit coding subband; the ball reticle vector quantization module of quantization 83 comprises a second lattice point reverse quantization submodule 831 and a second reverse energy regulation submodule 832 connected to each other, wherein, the second inverse quantization submodule lattice point 30 is configured to solve the lattice point D8 which corresponds to the index vector, which specifically comprises: calculating x = k * G, and calculating ytenp = x / (2 * (region_bit (j)) Qy = x - fD8 (ytenp) * (2 * (region_bit (j)); where, k is the vector quantization index vector, region represents the number of bits allocated in a frequency domain coefficient in the coding subband j; G is a matrix generating the lattice point D8 and its shape is as follows:
the second reverse energy regulation sub-module is configured to perform reverse energy regulation at the resolved crosshair point Ds, and obtain Y ”= y * scale (region _ / (2region-bit ^) + a where, a = (2 '6.2 "6.2” 6.2 “6.2-6.2'6.2-6.2 ^), scale (region is the scaling factor. The audio coding method and quantization system vector array in the invention, which considers, in general, the allocation characteristic of the voice information source, performs quantization in the vector to be quantized in the integrated vector grid quantization, the pyramid vector grid quantization and the sphere reticulum vector quantization are respectively used for the low bit coding subband and the high bit coding subband specifically according to the number of bits allocated to the coding subband, and the reverse coding process it is used in decoding, thus obtaining a satisfactory source of voice information encoding effect. In addition, a bit allocation with a variable step length is used for bit allocation, and the bit allocation step length of a frequency domain coefficient can be adjusted minimally by half a bit, thereby improving efficiency bit usage. In the meantime, the pyramid lattice vector quantifier with the low bit step length is designed, and the lattice identification algorithm has a low complexity, thus reducing the storage space. In addition, in the quantization of the lattice vector of the high bit coding subband, a new criterion is used for the identification of the codebook extension, thus further reducing the complexity of the lattice vector quantizer algorithm. . The algorithm for saving bits is also designed in the encoding process. The person skilled in the art can understand that all or part of the steps in the above method can be completed by instructing related hardware by the programs, and the programs can be stored in computer-readable storage medium, such as read-only memory, magnetic disk or optical disk and so on. Optionally, all or part of the steps in the examples above can be implemented with one or more integrated circuits. Consequently, all modules / units in the examples above can be deployed in hardware or deployed in functional software modules. The invention is not limited to any combination of hardware and software. INDUSTRIAL APPLICABILITY
The audio coding method and lattice vector quantization system in the invention, which generally considers the allocation characteristic of the voice information source, performs quantization on the vector to be quantized in the integrated lattice vector quantization, pyramid lattice vector quantization and sphere lattice vector quantization are respectively used for the low bit coding subband and the high bit coding subband specifically according to the number of bits allocated to the sub - encoding band, and the inverse encoding process is used in decoding, thus obtaining a satisfactory voice information source encoding effect. In addition, a bit allocation with a variable step length is used for bit allocation, and the bit allocation step length of a frequency domain coefficient can be adjusted minimally by half a bit, thereby improving efficiency bit usage. In the meantime, the pyramid lattice vector quantifier with the low bit step length is designed, and the lattice identification algorithm has a low complexity, thus reducing the storage space. In addition, in the quantization of the lattice vector of the high bit coding subband, a new criterion is used for the identification of the codebook extension, thus further reducing the complexity of the lattice vector quantizer algorithm. .
权利要求:
Claims (25)
[0001]
1. RETICLE VECTOR QUANTIZATION AUDIO CODING METHOD, characterized by understanding: dividing frequency domain coefficients of an audio signal for which a modified discrete cosine transform (MDCT) was performed in a plurality of sub-bands encoding, and quantizing and encoding an amplitude envelope value of each encoding subband to obtain encoded bits of the amplitude envelope; perform bit allocation in each coding subband, and perform normalization, quantization and coding respectively in vectors in a low bit coding subband with pyramid lattice vector quantization and in vectors in a high bit coding subband with sphere reticulum vector quantization to obtain encoded bits of the frequency domain coefficients, where, the low bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient is less than a preset threshold value, the high bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient is greater than or equal to the preset threshold value; and multiplexing and packaging the encoded bits of the amplitude envelope and the encoded bits of the frequency domain coefficients of each encoding subband to send to a decoding side.
[0002]
2. METHOD, according to claim 1, characterized in that, before the step of carrying out bit allocation in each coding sub-band, the method additionally comprises: calculating an initial importance value of each coding sub-band according to with the amplitude envelope value of each coding subband; in the step of carrying out bit allocation in each coding subband, bit allocation is performed in each frequency domain coefficient in each coding subband 5 according to the importance of each coding subband, where, during the bit allocation process, a bit allocation step extension and a weight reduction step extension after bit allocation are both variables.
[0003]
3. METHOD, according to claim 1, characterized in that the step of performing normalization and quantization in the low-bit coding subband with vector quantization of the pyramid lattice comprises: 15 performing normalization processing on all coefficients frequency domain in the coding subband by using the quantized amplitude envelope value of the coding subband to group in order to form a plurality of vectors to be quantized in multiple dimensions; perform quantization processing on each vector to be quantized; where, the step of carrying out quantization processing in each vector to be quantized comprises: performing an energy regulation in a vector to be quantized in 8 dimensions in the coding sub-band, and 25 quantizing the vector to be quantized of regulated energy 8 dimensions in relation to a crosshair point Ds; and compare an energy of the D8 crosshair point obtained by quantization with a maximum pyramid surface energy radius in a coding book, if the 308 D8 crosshair energy is less than or equal to the energy radius of maximum pyramid surface, calculate a quantization index of crosshair point D8 in the code book; if the energy of the D8 crosshair point is greater than the maximum pyramid surface energy radius, perform an energy truncation in the vector to be quantized regulated from the coding subband to the energy of a vector quantization crosshair point be quantized of truncated energy not to be greater than the maximum pyramid surface energy radius, and in the meantime, continuously add energy to the vector to be quantized from truncated energy to the energy of the D8 lattice point to which the vector to be quantized of added energy is quantized to be greater than the maximum pyramid surface energy radius, and then determine a last D8 lattice point whose energy is not greater than the maximum pyramid surface energy radius to be a vector quantization lattice point, and calculating the quantization index of the vector quantization lattice point in the codebook; and / or the step of performing normalization and quantization in the high bit coding subband with sphere reticulum vector quantization comprises: performing normalization processing on all frequency domain coefficients in the coding subband through the use of the quantized amplitude envelope value of the coding subband to group in order to form a plurality of vectors to be quantized in multiple dimensions; perform quantization processing on each vector to be quantized; where, the step of carrying out quantization processing in each vector to be quantized comprises: performing an energy regulation in a vector to be quantized in 8 dimensions in the coding subband, and quantizing the vector to be quantized in regulated energy according to 8 dimensions in relation to a crosshair point L> s; divide the lattice point value Da obtained through quantization by 2 for a power of numerous allocated bits, and then requantize in relation to the lattice point Ds, judge whether the reticulated point lattice value Da is a zero vector, if so, determine that a zero vector condition is met, if not, determine that the zero vector condition is not met, where, region represents the number of bits allocated in a frequency domain coefficient in a j-th coding subband; 10 if the zero vector condition is met, calculate an index vector for crosshair point D8; and if the zero vector condition is not met, perform energy truncation at a value of a vector to be quantized until the zero vector condition is met, 15 perform multiple value backup w of the vector itself to be quantized, add the multiple backup value w to the vector to be quantized of truncated energy, then requanting in relation to crosshair point D8, judge whether the condition of vector zero has been met, if not, 20 calculate a last vector of index k of the point reticle D8 that meets the condition of zero vector, if yes, continuously add the multiple backup value w to the vector to be quantized and then requantize in relation to the lattice point Da until the condition of zero vector no be answered.
[0004]
4. METHOD, according to claim 3, characterized in that, in the step of realizing the energy regulation in the vector to be quantized, of 8 dimensions, firstly, of 3 0 according to the number of bits region_bi t (j) allocated to a frequency domain coefficient in the coding subband j where the vector to be quantized from 8 dimensions is located, observe a table below for a codebook sequence number index and an energy scaling factor scale that corresponds to the number of bits; then perform energy regulation on the vector to be quantized 5 according to the following equation: ZZcaie = (Yjm - a) * scale (index) ym where, represents a mth vector to be quantized, normalized to 8 dimensions in coding subband j, Y ™ scaie represents a vector of 8 dimensions after ym 10 the energy regulation has been performed in ly, a = (2-6,2'6,2'6,2'6,2'6 , 2'6,2'6,2'6);
[0005]
5. METHOD, according to claim 1, 20 characterized in that, the coding step of the low bit coding subband with pyramid lattice vector quantization comprises: perform Huffman coding in the quantization indices of all the low bit encoding subbands; and if the total number of bits consumed from the Huffman coded quantization indices of all low bit coding subbands is less than the total number of bits required for natural coding of the quantization indices of all bit coding subbands. low, then use Huffman encoding and adjust a Huffman frequency domain coefficient that encodes the identifier as 1 or true, use bits saved by Huffman encoding to modify the number of bits allocated to the encoding subband and perform quantization of vector and re-encode in the encoding subband for which the number of allocated bits is modified; if the total number of bits consumed from the Huffman coded quantization indices of all low bit coding subbands is greater than or equal to the total number of bits required for natural coding of the quantization indices of all coding subbands of low bit low, perform natural coding on the quantization index again, and set the Huffman frequency domain coefficient that encodes the identifier as 0 or false.
[0006]
6. METHOD, according to claim 5, characterized in that, the step of using bits saved by the Huffman coding to modify the number of allocated bits of the coding subband comprises: calculating the number of bits saved by the Huffman coding ; find a coding subband with maximum importance in all coding subbands, if the number of bits allocated to the coding subband has reached a maximum value of the number of bits that can be allocated to the coding subband, adjust the importance of the coding subband as lower, and no longer changing the number of bits allocated to the coding subband, if the number of bits allocated to the coding subband has not reached the maximum value of the number of bits that they can be allocated to the coding subband, then carry out the modification of bit allocation in the coding subband with the utmost importance; and after each time, the number of allocated bits is modified, that is, numerous iterations of bit count allocation modification are added by 1, if the number of bit count allocation modification iterations has reached a preset upper threshold or the number of bits that can be used is less than the number of bits that is required for bit allocation modification, to end a bit allocation modification process.
[0007]
7. METHOD, according to claim 5, characterized in that, when Huffman coding is performed on the quantization indices of all low bit coding subbands, in all coding subbands in which the number of bits allocated in a frequency domain coefficient is greater than 1, less than 5 and not 2, each four bits in the natural binary codes for each vector quantization index are divided into a group and Huffman coding is performed in that group, and the sum of the Huffman encoding bit numbers for all groups of 4 bits is the number of bits consumed in the Huffman encoding of the quantization index; in all coding subbands in which the number of bits allocated in a frequency domain coefficient is 2.15 bits are used to encode the pyramid lattice vector quantization index of each 8-dimension vector, and the 15 bits are divided into 3 groups of 4 bits and 1 group of 3 bits, so Huffman encoding is performed in groups, the sum of the bit numbers of the 4 groups consumed in Huffman encoding is the number of bits consumed in Huffman encoding the quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is less than 127, then the quantization index is encoded with 7 bits, which are divided into 1 group of 3 bits and 1 group of 4 bits, the Huffman coding is performed respectively in the two groups, the sum of the bit numbers of the two groups consumed in the Huffman coding is the number of bits consumed in the Huffman coding of the quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 127, then the natural binary code of the quantization index is defined as "1111 1110", the 7 numbers 1 are divided into 1 group of 3 bits and 1 group of 4 bits, the Huffman encoding is performed respectively in the two groups, the sum of the bit numbers of the two groups consumed in the Huffman encoding is the number of bits consumed in the encoding of Huffman's quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 128, then the natural binary code of the quantization index is defined as "1111 1111", the 7 numbers 1 are divided into 1 group of 3 bits and 1 group of 4 bits, the Huffman encoding is performed respectively in the two groups, the sum of the bit numbers of the two groups consumed in the Huffman encoding is the number of bits consumed in the encoding of Huffman's quantization index.
[0008]
8. METHOD OF DECODIFICATION OF AUDIO OF QUANTIZATION OF RETICLE VECTOR, characterized by the fact that it comprises: 5 decoding encoded bits of each amplitude envelope in a debited flow to be debited to obtain an amplitude envelope quantization exponent of each sub -coding band; perform bit allocation in each encoding subband 10, and perform decoding, inverse quantization and inverse normalization of pyramid lattice vector quantization in a low bit encoding subband to obtain frequency domain coefficients of the encoding subband low bit, and perform decoding, inverse quantization and inverse normalization of vector quantization of sphere lattice in a high bit coding subband to obtain frequency domain coefficients of the high bit coding subband; where, the low bit coding subband is a coding subband in which numerous bits allocated in a frequency domain coefficient are less than a preset threshold value, the high bit coding subband is a coding subband in which numerous bits allocated to a frequency domain coefficient are greater than or equal to the preset threshold value 25; and perform an inverse modified discrete cosine transform (IMDCT) on the frequency domain coefficients for which the noise loading was performed to obtain a final audio signal.
[0009]
9. METHOD, according to claim 8, characterized in that, before the step of carrying out bit allocation in each coding sub-band, the method further comprising: calculating an initial value of importance for each sub-band encoding according to the amplitude envelope value of each encoding subband; in the step of carrying out bit allocation in each coding subband, bit allocation is performed in each frequency domain coefficient in each coding subband according to the importance of each coding subband, in which, during bit allocation, an extension of the bit allocation step and an extension of the downgrade step after bit allocation are both variables; after bit allocation is performed and before decoding, according to a value of numerous bit count allocation modification iterations and the importance of each encoding subband on an encoding side, the bit allocation modification is performed in encoding subband for count times again.
[0010]
10. METHOD, according to claim 8, characterized in that, in the step of carrying out decoding, the inverse quantization and inverse normalization of vector pyramid lattice quantization in the low bit coding subband, the quantization indices of vector of the low bit coding subband are obtained by performing Huffman coding or direct decoding on the low bit coding subband according to a Huffman encoding indicator of frequency domain coefficient on the coding side, and the quantization inverse and inverse normalization of pyramid lattice vector quantization are performed on all vector quantization indices to obtain the frequency domain coefficients of the low bit coding subband; in the decoding step, the inverse quantization and inverse normalization of sphere reticulum vector quantization in the high bit coding subband, natural decoding is directly used to obtain vector quantization indices of the bit coding subband high, and inverse quantization and inverse normalization of sphere reticulum vector quantization are performed on all vector quantization indices to obtain the frequency domain coefficients of the high bit coding subband.
[0011]
11. METHOD, according to claim 8 or 10, characterized in that, in a process of decoding the low bit coding subband, when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if a natural binary code value of the quantization index is less than "1111 111", then the quantization index is calculated according to the natural binary code value; if the value of the natural binary code of the quantization index is equal to "1111 111", then a next bit is continuously read, if the next bit is 0, then the value of the quantization index is 127, if the next bit is 1, then the value of the quantization index is 128.
[0012]
12. METHOD according to claim 8 or 10, characterized in that, in the decoding step of the low bit coding subband, if the Huffman encoding indicator of the frequency domain coefficient indicates that the Huffman coding does not then, a mth vector quantization index index_b (j, m) was used in a low bit coding subband j is directly decoded; if the frequency domain coefficient Huffman encoding indicator indicates that Huffman encoding was used, then the mth th vector quantization index index_b (j, m) in the low bit coding subband j is obtained by Huffman decoding; the step of carrying out inverse quantization of pyramid lattice vector quantization in the low bit coding subband comprises: a. determining an energy pyramid surface on which the quantization index is located and a quantization index mark on that energy pyramid surface; where, kk is searched in pyramid surface energies from 2 to LargeK (region_bit (j)) to satisfy an inequality below: N (8, kk) <= index_b (j, m) <N (8, kk + 2), if such a kk is found, then K = kk is the energy of the pyramid surface, where a lattice point D8 corresponding to the quantization index index_b (j, m) is located, b = index_b (j, m) -N (8, kk) is an index mark for crosshair point D8 on the pyramid surface where crosshair point D8 is located; if no such kk is found, the pyramid surface energy of crosshair point D8 corresponding to the quantization index index_b (j, m) K = 0 and the index mark b = 0ü b. the steps to solve a crosshair point vector D8 Y = (yl, y2, y3, y4, y5, y6, y7, y8,) whose pyramid surface energy is K and the index mark is b, are according to then: step 1. leave Y = (0,0,0,0,0,0,0,0), xb = 0, i = 1, k = K, 1 = 8; step 2. if b = xb, then yi = 0; skip to step 6; step 3. if b <xb + N (ll, k), then, yi = 0, skip to step 5; otherwise, xb = xb + N (ll, k); leave j = lD step 4. if b <xb + 2 * N (1-1, kj), then, if xb <= b <xb + N (1-1, kj), then yi = j; if b> = xb + N (ll, kj), then yi = -j, xb = xb + N (ll, k- j); otherwise, xb = xb + 2 * N (1-1, kj), j = j + l; continue performing the current stage; step 5. update k = k- | yi |, 1 = 1-1, i = i + l, if k> 0, skip to step 2; step 6. if k> 0, then y8 = k- | yi | , Y = (yl, y2, ..., y8), which is a solved lattice point; ç. perform an inverse energy regulation at crosshair point D8, and obtain Y ™ = (Y + a) / scale (index) where, a = (2'6,2'6,2'6,2'6,2 ~ 6.2'6.2-6.2'6), SCaleíjndex) is a scaling factor and is found from a first corresponding table, the first corresponding table
[0013]
13. METHOD, according to claim 8 or 10, characterized in that, the step of directly using natural encoding 10 to obtain the vector quantization indices of the high bit coding subband and to perform the inverse quantization of the quantization of sphere vector in all vector quantization indices comprises: a). calculate x = k * G, and calculate 15 ytemp = x / (2 * (region_bit (j)); where, k is the index vector of the mth vector quantization in the high bit coding subband j, region represents the number of bits allocated in a frequency domain coefficient in the coding subband j; G is a generating matrix of the lattice point 20 D8 and a form of the generating matrix is as follows:
[0014]
14. RETICLE VECTOR QUANTIZATION AUDIO CODING SYSTEM, characterized by the fact that it comprises: a modified cosine discrete transform unit (MDCT), an amplitude envelope calculation unit, an amplitude envelope quantization unit and encoding, a bit allocation unit, a normalization processing unit, a classification and coding lattice vector quantization unit, and a bit stream multiplexer; wherein, the MDCT unit is configured to perform MDCT on an audio signal to generate frequency domain coefficients; the amplitude envelope calculation unit is connected to the MDCT unit and configured to divide the frequency domain coefficients generated by the MDCT unit into a plurality of coding subbands, and calculate an amplitude envelope value for each sub- encoding band; the amplitude and encoding envelope quantization unit is connected to the amplitude envelope calculation unit and configured to quantize and encode the amplitude envelope value of each coding subband to generate encoded bits of the amplitude envelope of each sub -coding band; the bit allocation unit is connected to the amplitude and encoding envelope quantization unit and configured to perform bit allocation to obtain a number of encoded bits allocated to each frequency domain coefficient in each encoding subband; the normalization processing unit is connected to the MDCT unit and configured to use a quantization amplitude envelope value from the coding subband to perform normalization processing on all frequency domain coefficients in each coding subband; the classification and coding lattice vector quantization unit is connected to the normalization processing unit and the bit allocation unit and configured to perform quantization and coding on vectors to be quantized normalized in a low bit coding subband and a high bit coding subband with pyramid lattice vector quantization and sphere lattice vector quantization, respectively, to obtain the encoded bits of the frequency domain coefficients; where the low bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient is less than a preset threshold value, the high bit coding subband it is a coding sub-band in which the number of bits allocated in a frequency domain coefficient is greater than or equal to the preset threshold value; the bit stream multiplexer is connected to the amplitude and coding envelope quantization unit and to a classification and coding lattice vector quantization unit and configured to multiplex the coded bits of each coding subband and the coded bits of the frequency domain coefficients to send to a decoder side.
[0015]
15. SYSTEM, according to claim 14, characterized in that the bit allocation unit comprises an importance calculation module and a bit allocation module that are connected, in which the importance calculation module is configured to calculate an initial value of importance for each coding subband according to the amplitude envelope value of the coding subband; the bit allocation module is configured to perform bit allocation in each frequency domain coefficient in each coding subband according to the importance of each coding subband, where, during bit allocation, an extension of the bit allocation step and an extension of the weight reduction step after the bit allocation are both variables.
[0016]
16. SYSTEM, according to claim 14, characterized in that, the classification and coding lattice vector quantization unit comprises a classification processing module and a pyramid lattice vector quantization module, in which, the classification processing module is connected to the normalization processing unit and configured to group the normalized frequency domain coefficients to form vectors to be multidimensional quantized, and to forward the vectors to be normalized from the low bit coding subband for the pyramid lattice vector quantization module; the pyramid lattice vector quantization module is connected to the classification processing module and configured to perform the pyramid lattice vector quantization on the vector to be normalized from each low bit coding subband; the pyramid lattice vector quantization module comprising a first energy regulation sub-module, a first cross-stitch quantization sub-module, a first energy adjustment sub-module and a quantization index calculation sub-module, where, the first energy regulation sub-module is configured to perform energy regulation in a vector to be quantized from 8 dimensions in the coding subband; the first crosshair quantization sub-module is connected to the first energy regulation sub-module and configured to quantize the 8-dimension vector to be quantized for a crosshair point De; the first energy adjustment submodule is connected to the first crosshair quantization submodule and configured to compare a crosshair Dg energy with a maximum pyramid surface energy radius in a coding code book, if the energy if the D8 crosshair point is less than or equal to the maximum pyramid surface energy radius, the quantization index calculation sub-module must be notified to calculate a D8 crosshair quantization index in the code book; if the energy of the D8 crosshair point is greater than the maximum pyramid surface energy radius, an energy truncation must be performed on the vector to be quantized regulated in the coding subband, and notify the first quantization sub-module of lattice point to truncate the energy until the energy of the vector quantization lattice point to be quantized for truncated energy is no greater than the maximum pyramid surface energy radius and in the meantime continuously add energy to the vector to be quantized from truncated energy, and notify the first crosshair quantization submodule to quantize the vector to be quantized from energy added to crosshair point D8 to the energy from crosshair point D8 to which the vector to be quantized of added energy is greater than the maximum pyramid surface energy radius, and notify the quantization index calculation sub-module to calculate the quantization index of a last D8 crosshair point whose energy is no greater than the maximum pyramid surface energy radius in the codebook; the index quantization calculation module is connected to the first energy adjustment sub-module and configured to calculate the quantization index of crosshair point Dg in the code book according to a notification from the first energy adjustment sub-module; and the classification and coding lattice vector quantization unit further comprises a sphere reticulum vector quantization module connected to the classification processing module; the classification processing module being further configured to forward the vector to be normalized quantized 5 in the high bit coding subband to the sphere reticulum vector quantization module to process; the sphere reticulum vector quantization module is configured to perform sphere reticulum vector quantization in the vector to be quantized normalized in the high bit coding subband; the sphere vector array quantization module comprises a second energy regulation sub-module, a second network point quantization sub-module, a zero vector condition judging sub-module, a second energy adjustment sub-module and a second energy adjustment sub-module. second index vector calculation sub-module, in which the second energy regulation sub-module is configured to perform energy regulation in the vector to be quantized in 8 dimensions in the coding sub-band; 20 the second crosshair quantization sub-module is connected to the second energy regulation sub-module and configured to quantize the 8-dimension vector to be quantized for a crosshair point Da; the zero vector condition judging submodule is 25 connected to the second crosshair quantization submodule and configured to judge whether the crosshair point Da meets a zero vector condition, if yes, notify the second index vector calculation submodule to calculate the crosshair point index vector Da; if not, notify the second energy adjustment sub-module to adjust the energy of the vector to be quantized; where the zero vector condition must divide the lattice point value Da obtained by vector quantization by 2 for a power of the number of allocated bits 2reg, 0 "-à" (y) and then project to the point of lattice D8, the projected lattice point value Da is a vector zero, where, region represents the number of bits allocated in a frequency domain coefficient in the j-th coding subband; the second energy adjustment sub-module is connected to the zero vector condition judging sub-module and to the second crosshair quantization sub-module and configured to perform energy truncation at a vector value to be quantized, and to notify the second sub-module of crosshair quantization to quantize the vector to be quantized from truncated energy to a crosshair point Da until the zero vector condition is satisfied; back up a multiple value w of the vector itself to be quantized, and add the multiple value of backup w to the vector to be quantized for truncated energy, and notify the second reticule quantization sub-module to quantize the vector to be quantized from truncated energy to the lattice point Da until the zero vector condition is not satisfied; and notifying the second index vector calculation sub-module to calculate a last index vector of the crosshair point Da that meets the zero vector condition; the second index vector calculation sub-module is connected to the zero vector condition judging sub-module and the second energy adjustment sub-module and configured to calculate the quantization index of the crosshair point Da in the code book according to submodule notifications judging the zero vector condition and the second energy adjustment sub-module.
[0017]
17. SYSTEM, according to claim 16, characterized in that, the first energy regulation sub-module is configured for, in the step of carrying out energy regulation in the vector to be quantized in 8 dimensions, according to a number of bits region_bit (j) allocated in a 5 frequency domain coefficient in the coding subband j where the vector to be quantized from 8 dimensions is located, search in a table below for an index book sequence number and a factor of scaling energy scale corresponding to the 10-bit region_bit number (j); then, perform energy regulation on the vector to be quantized according to an equation below: Y ^^^ - ayscaleÇindex) ym in which, it represents a mth vector to be quantized from 8 dimensions normalized in subband 15 coding j , lJíScaie represents a vector of 8 dimensions after the energy regulation in a = (2'6,2_6,2 "6,2'6,2" 6,2 "s, 2-6,2"6);
[0018]
18. SYSTEM, according to claim 14, characterized in that the vector quantization unit of classification and coding lattice further comprises a coding type judging module, a 20 Huffman coding module, a coding module natural and a bit allocation modification module, wherein the encoding type judging module is configured to judge whether a total number of bits consumed from Huffman encoded quantization indices of all low bit encoding subbands is less than the total number of bits required for the natural coding of the quantization indices of all low bit coding subbands, if yes, notify the Huffman coding module and bit allocation modification module; if the total number of bits consumed from Huffman coded quantization indices of all low bit coding subbands is greater than or equal to the total number of bits required for the natural coding of quantization indices of all coding subbands of low low bit, notify the natural encoding module; the Huffman encoding module is configured to perform Huffman encoding at the quantization index of the low bit encoding subband, and to set a frequency domain coefficient Huffman encoding indicator to be 1 or true, the natural encoding is configured to perform natural encoding on the quantization index of the low bit coding subband and the index vector of the high bit coding subband; the bit allocation modification module is configured to use bits saved by Huffman encoding to modify the number of bits allocated from the coding subband, and notify the rating processing module to classify the coding subbands with the number of bits allocated to be modified, then, to perform vector quantization and encoding again.
[0019]
19. SYSTEM, according to claim 18, characterized in that, the bit allocation modification module is configured to, during the bit allocation realization, search for a coding subband with a maximum importance in all sub - coding bands, if the number of bits allocated in the coding subband reached a maximum value of the number of bits that can be allocated in the coding subband, adjust the importance of the coding subband to be lower, and no longer modify the number of bits allocated to the coding subband, if the number of bits allocated in the coding subband has not reached the maximum value of the number of bits that can be allocated in the coding subband, then perform the allocation modification bit in the coding subband with the maximum importance, - during the bit allocation modification, allocate 1 bit in the coding subband with the number of allocated bits being 0, and reduce the importance by 1 after the allocation of bit; allocate 0.5 bit in the coding subband with the number of allocated bits being greater than 0 and less than 5, and reducing the importance by 0.5 after bit allocation; allocate 1 bit in the coding subband with the number of bits allocated being greater than 5, and reduce the importance by 1 after bit allocation; and after each cycle, the number of allocated bits is modified by the bit allocation modification module, that is, a number of bit count allocation modification iterations is added to 1, if the number of bit allocation modification iterations bit count has reached a preset upper limit or the number of bits that can be used is less than the number of bits required for modifying bit allocation, ending a process of modifying bit allocation.
[0020]
20. SYSTEM, according to claim 18, characterized in that, when the Huffman coding module performs Huffman coding in the quantization indices of all low bit coding subbands, in all coding subbands in where the number of bits allocated in a frequency domain coefficient is greater than 1, less than 5 and not 2, Huffman's coding module divides each 4 bits into natural binary code of each vector quantization index into one group and performs the Huffman coding therein, where, a sum of the numbers of bits of the Huffman coding of all groups of 4 bits is the number of bits consumed in the Huffman coding of the quantization index; in all coding subbands in which the number of bits allocated in a frequency domain coefficient is 2, Huffman's coding module uses 15 bits to encode the pyramid lattice vector quantization index of each vector of 8 dimensions, and divides the 15 bits into 3 groups of 4 bits and 1 group of 3 bits, then performs the Huffman encoding in the groups, respectively, in which, a sum of the numbers of bits consumed by the Huffman encoding of the 4 groups is the number of bits consumed in the Huffman encoding of the quantization index; when the number of bits allocated in a coding subband frequency domain coefficient is 1, if the quantization index is less than 127, then Huffman's encoding module uses 7 bits to encode the quantization index, and divides the 7 bits into 1 group of 3 bits and 1 group of 4 bits, performs the Huffman encoding, respectively, in the two groups, in which, a sum of the numbers of bits consumed in the Huffman encoding of the two groups is the number of bits consumed in the Huffman coding of the quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 127, then Huffman's coding module defines its natural binary code as "1111 1110 ", divides the 7 numbers 1 in the front into 1 group of 3 bits and 1 group of 4 bits, performs Huffman coding, respectively, in these two groups, in which, a sum of the numbers of bits consumed by Huffman coding of the two groups is the number of bits consumed in the Huffman encoding of the quantization index; when the number of bits allocated in a frequency domain coefficient of the coding subband is 1, if the quantization index is equal to 128, then the Huffman coding module defines its natural binary code as "1111 1111 ", divides the 7 numbers 1 in the front into 1 group of 3 bits and 1 group of 4 bits, performs Huffman coding, respectively, in these two groups, in which, a sum of the numbers of bits consumed by Huffman coding of the two groups is the number of bits consumed in the Huffman encoding of the quantization index.
[0021]
21. RETICLE VECTOR QUANTIZATION AUDIO DECODING SYSTEM, characterized by the fact that it comprises: a bit stream demultiplexer, an encoding subband amplitude envelope decoding unit, a bit allocation unit, a frequency domain coefficient decoding unit, a sorting lattice vector quantization unit, an inverse normalization processing unit, a noise loading unit and a modified cosine discrete transform unit (IMDCT) inverse, wherein, the bit stream demultiplexer is configured to separate encoded bits of an amplitude envelope from a bit stream to be decoded; the encoding subband amplitude envelope decoding unit is connected to the bitstream demultiplexer and configured to decode the amplitude encoded bits emitted by the bitstream demultiplexer to obtain an amplitude amplitude quantization exponent. each coding subband; the bit allocation unit is connected to the amplitude envelope decoding unit and configured to perform bit allocation in order to obtain a number of encoded bits allocated to each frequency domain coefficient in each encoding subband; 5 the frequency domain coefficient decoding unit is connected to the amplitude envelope decoding unit and the bit allocation unit and configured to decode a low bit coding subband in order to obtain a quantization index of the sub - 10 low bit coding band; and decoding a high bit coding subband in order to obtain an index vector of the high bit coding subband, wherein, the low bit coding subband is a coding subband in which the number of bits allocated in a frequency domain coefficient 15 is less than a preset threshold value, the high bit coding subband being a coding subband in which the number of bits allocated in a frequency domain coefficient is greater than or equal to the pre-adjusted threshold value; 20 the sorting lattice vector quantization inverse quantization unit is configured to perform inverse quantization of the pyramid lattice vector quantization on the quantization index of the low bit coding subband, and perform inverse quantization 25 of the quantization lattice sphere lattice vector in the index vector of the high bit coding subband; the inverse normalization processing unit is configured to perform inverse normalization on values after inverse quantization has been performed for the sub-30 coding band, and to obtain the frequency domain coefficients; the noise loading unit is configured to carry out noise loading in the subband in which no bits are allocated in the frequency domain coefficient output values emitted by the inverse normalization processing unit; the modified cosine discrete transform unit (inverse IMDCT) is connected to the noise loading unit and configured to perform IMDCT on the frequency domain coefficient for which the noise loading was performed to obtain an audio signal.
[0022]
22. SYSTEM, according to claim 21, characterized in that, the bit allocation unit comprises an importance calculation module and a bit allocation module that are connected, and a bit allocation modification module connected to the bit allocation module, wherein, the importance calculation module is configured to calculate an initial importance value for each coding subband according to an amplitude envelope value of the coding subband; the bit allocation module is configured to perform bit allocation in each frequency domain coefficient in each coding subband according to the importance of each coding subband, where, during bit allocation, an extension of the bit allocation step and an extension of the downgrade step after bit allocation are both variables; the bit allocation modification module is configured to perform bit allocation modification in the encoding subband by count cycles again, after performing bit allocation according to a value of a number of bit allocation modification iterations count and the importance of each encoding subband on an encoding side.
[0023]
23. SYSTEM, according to claim 21, characterized in that, the frequency domain coefficient decoding unit is configured to, during the decoding in the low bit 5 coding subband, and the number of bits allocated in a frequency domain coefficient the coding subband is 1, if a natural binary code value of the quantization index is less than "1111 111", then calculate the quantization index according to the binary code value Natural; 10 if the value of the natural binary code of the quantization index is equal to "1111 111", then continuously read a next bit, where, if the next bit is 0, then the quantization index value is 127, if the next bit is 1, so the quantization index value is 128.
[0024]
24. SYSTEM, according to claim 22, characterized in that the reverse quantization unit of the classification lattice vector quantization comprises a classification processing module and a reverse quantization module 20 of quantization of the pyramid lattice vector , wherein the classification processing module is configured to route the quantization index of the low bit coding subband to the inverse quantization module 25 of the pyramid lattice vector quantization; the inverse quantization module of pyramid lattice vector quantization is configured to perform inverse quantization on the quantization index of the low bit coding subband; the pyramid lattice vector reverse quantization module 30 comprising a first lattice point reverse quantization sub-module and a first energy reverse regulation sub-module which are connected, wherein the first reverse point quantization sub-module is lattice is configured to determine an energy pyramid surface on which the quantization index of the low bit coding subband is located and a quantization index mark on that energy pyramid surface and further solve a D8 lattice point corresponding; the first reverse energy regulation sub-module is configured to perform reverse energy regulation at the resolved crosshair point D8 Y, and obtain Y ™ = (K + a) / scale ^ index) where, a = (2'6.2 “6.2” 6.2 ^ 6.2'6.2 ~ 6.2'6.2'6), SCClle (Index) is a scaling factor; the inverse normalization processing unit is configured to perform inverse ym normalization processing in 1j to obtain the frequency domain coefficient of a mth vector of the coding subband j recovered on one decoder side: yT m (J) / 2 gy ~ m where, Thq (j) is an exponent of quantization of amplitude envelope of the j-th coding subband.
[0025]
25. SYSTEM, according to claim 22, characterized in that, the inverse quantization unit of classification lattice vector further comprises an inverse quantization module of sphere quantization vector quantization; the classification processing module is further configured to forward the index vector of the high bit coding subband to the inverse quantization module of the sphere reticulum vector quantization to process; the inverse quantization module of sphere reticulum vector quantization is configured to perform inverse quantization on the index vector of the high bit coding subband; the inverse quantization module of sphere crosshair vector quantization comprises a second crosshair reverse quantization submodule and a second reverse energy regulation submodule which are connected, wherein, the second crosshair reverse quantization submodule is configured to solve a crosshair point Dg corresponding to the index vector, where, the solution step of crosshair point D8 corresponding to the index vector comprises: calculating x = k * G, and calculating ytemp = x / (2 A (region_bit (j)); and calculate the crosshair point D3 y = x- fD8 (ytemp) * (2A (region_bit (j)); where, k is the vector quantization index vector, region_bit (j) represents the number of bits allocated in a frequency domain coefficient in the coding subband j; G is a matrix generating the lattice point Dfi and a form of the generating matrix is as follows: the second reverse energy regulation sub-module is configured to perform reverse energy regulation at the solved crosshair point Ds, and obtain y, ”= y * jco / e (regrón_tò (7)) / (2 ', s'“ - í "0)) + a where, a = (2'6,2'6,2-6,2'6,2'6,2'6,2'6,2 ^), SCaleÇregion _bit {jy) & a scaling factor; the inverse normalization processing unit 5 is configured to perform inverse normalization processing in J- in order to obtain the frequency domain coefficient of the mth vector of the coding subband j recovered on the decoder side : y ~ mj Thq (. 2 y ~ m * i ~ L O1 j 10 where, Thg (j) is an exponent of amplitude envelope quantization of the j-th coding subband.
类似技术:
公开号 | 公开日 | 专利标题
BR112012009714B1|2021-01-19|lattice vector quantization audio coding method, lattice vector quantization audio decoding method, lattice vector quantization audio quotation system and lattice vector quantization audio decoding system
JP5192099B2|2013-05-08|Hierarchical audio encoding and decoding method and system
BR112012021359B1|2020-12-15|HIERARCHICAL AUDIO CODING METHOD, HIERARCHICAL AUDIO DECODING METHOD, HIERARCHICAL AUDIO CODING METHOD FOR TRANSITIONAL SIGNALS, HIERARCHICAL AUDIO SODIFICATION METHOD, EARLY CHARACTERISTICS
ES2701862T3|2019-02-26|Decoding a stereo audio signal using complex prediction
BR112012026324B1|2021-08-17|AUDIO OR VIDEO ENCODER, AUDIO OR VIDEO ENCODER AND RELATED METHODS FOR MULTICHANNEL AUDIO OR VIDEO SIGNAL PROCESSING USING A VARIABLE FORECAST DIRECTION
ES2612516T3|2017-05-17|Audio signal encoding and decoding method and device
BRPI0606387B1|2019-11-26|DECODER, AUDIO PLAYBACK, ENCODER, RECORDER, METHOD FOR GENERATING A MULTI-CHANNEL AUDIO SIGNAL, STORAGE METHOD, PARACODIFYING A MULTI-CHANNEL AUDIO SIGN, AUDIO TRANSMITTER, RECEIVER MULTI-CHANNEL, AND METHOD OF TRANSMITTING A MULTI-CHANNEL AUDIO SIGNAL
JP2018205766A|2018-12-27|Method, encoder, decoder, and mobile equipment
WO2011045926A1|2011-04-21|Encoding device, decoding device, and methods therefor
CA2803276A1|2012-01-12|Encoding method, decoding method, encoding device, decoding device, program, and recording medium
KR20140026279A|2014-03-05|Apparatus and method for encoding audio signal, apparatus and method for decoding audio signal
JP5840101B2|2016-01-06|Encoding method, encoding apparatus, decoding method, decoding apparatus, program, and recording medium
BR112012012573B1|2021-10-19|METHOD AND SYSTEM OF ENCODING, HIERARCHICAL AUDIO DECODING
BR112019014125B1|2021-11-16|METHOD AND DECODER FOR DECODING AN ENCODED AUDIO BITS STREAM AND NON- TRANSIENT COMPUTER-READABLE MEDIA
ES2708581T3|2019-04-10|Multichannel audio coding using complex prediction and window shape information
BR112019014125A2|2019-12-17|backward compatible harmonic transponder integration for high frequency reconstruction of audio signals
JP5544371B2|2014-07-09|Encoding device, decoding device and methods thereof
Xie2012|Lattice Vector Quantization Applied to Speech and Audio Coding
Vasilache2010|New directions in lattice based lossy compression
Oger et al.2004|Companded lattice VQ for efficient parametric LPC quantization
Vasilache2006|Conditional split lattice vector quantization for spectral encoding of audio signals
BR122020025095B1|2021-04-13|AUDIO OR VIDEO ENCODER, AUDIO OR VIDEO DECODER AND RELATED METHODS FOR PROCESSING THE AUDIO OR VIDEO SIGNAL OF MULTIPLE CHANNELS USING A VARIABLE FORECAST DIRECTION
同族专利:
公开号 | 公开日
HK1158354A1|2012-07-13|
EP2472241A1|2012-07-04|
US9015052B2|2015-04-21|
WO2011063594A1|2011-06-03|
RU2506698C2|2014-02-10|
CN102081926B|2013-06-05|
CN102081926A|2011-06-01|
US20120259644A1|2012-10-11|
RU2506698C9|2014-07-20|
EP2472241B1|2015-09-23|
EP2472241A4|2013-04-17|
BR112012009714A2|2020-08-04|
RU2012116045A|2014-01-10|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

JP3272214B2|1995-10-09|2002-04-08|三洋電機株式会社|Lattice quantizer and method for lattice quantizing an input vector|
US6064954A|1997-04-03|2000-05-16|International Business Machines Corp.|Digital audio signal coding|
US6006179A|1997-10-28|1999-12-21|America Online, Inc.|Audio codec using adaptive sparse vector quantization with subband vector classification|
US6594627B1|2000-03-23|2003-07-15|Lucent Technologies Inc.|Methods and apparatus for lattice-structured multiple description vector quantization coding|
KR20020075592A|2001-03-26|2002-10-05|한국전자통신연구원|LSF quantization for wideband speech coder|
CA2388358A1|2002-05-31|2003-11-30|Voiceage Corporation|A method and device for multi-rate lattice vector quantization|
US7433824B2|2002-09-04|2008-10-07|Microsoft Corporation|Entropy coding by adapting coding between level and run-length/level modes|
KR100487719B1|2003-03-05|2005-05-04|한국전자통신연구원|Quantizer of LSF coefficient vector in wide-band speech coding|
DE10345995B4|2003-10-02|2005-07-07|Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.|Apparatus and method for processing a signal having a sequence of discrete values|
US7895034B2|2004-09-17|2011-02-22|Digital Rise Technology Co., Ltd.|Audio encoding system|
FR2888699A1|2005-07-13|2007-01-19|France Telecom|HIERACHIC ENCODING / DECODING DEVICE|
US7953595B2|2006-10-18|2011-05-31|Polycom, Inc.|Dual-transform coding of audio signals|
US7966175B2|2006-10-18|2011-06-21|Polycom, Inc.|Fast lattice vector quantization|
CN101266795B|2007-03-12|2011-08-10|华为技术有限公司|An implementation method and device for grid vector quantification coding|
EP2015293A1|2007-06-14|2009-01-14|Deutsche Thomson OHG|Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain|
CN101110214B|2007-08-10|2011-08-17|北京理工大学|Speech coding method based on multiple description lattice type vector quantization technology|
US8527265B2|2007-10-22|2013-09-03|Qualcomm Incorporated|Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs|
CN101562015A|2008-04-18|2009-10-21|华为技术有限公司|Audio-frequency processing method and device|
CN101540172B|2009-04-15|2012-02-22|炬力集成电路设计有限公司|Encoding and decoding system of audio data and method thereof|US20120123788A1|2009-06-23|2012-05-17|Nippon Telegraph And Telephone Corporation|Coding method, decoding method, and device and program using the methods|
KR101714278B1|2012-07-12|2017-03-08|노키아 테크놀로지스 오와이|Vector quantization|
CN106941004B|2012-07-13|2021-05-18|华为技术有限公司|Method and apparatus for bit allocation of audio signal|
CN102801427B|2012-08-08|2015-05-06|深圳广晟信源技术有限公司|Encoding and decoding methods and systems of lattice vector quantization of variable rate of source signal|
CN103854653B|2012-12-06|2016-12-28|华为技术有限公司|The method and apparatus of signal decoding|
US9665541B2|2013-04-25|2017-05-30|Mozilla Corporation|Encoding video data using reversible integer approximations of orthonormal transforms|
US9560386B2|2013-02-21|2017-01-31|Mozilla Corporation|Pyramid vector quantization for video coding|
KR101789083B1|2013-06-10|2017-10-23|프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝에.베.|Apparatus and method for audio signal envelope encoding, processing and decoding by modelling a cumulative sum representation employing distribution quantization and coding|
ES2635026T3|2013-06-10|2017-10-02|Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.|Apparatus and procedure for encoding, processing and decoding of audio signal envelope by dividing the envelope of the audio signal using quantization and distribution coding|
EP2824661A1|2013-07-11|2015-01-14|Thomson Licensing|Method and Apparatus for generating from a coefficient domain representation of HOA signals a mixed spatial/coefficient domain representation of said HOA signals|
WO2015081699A1|2013-12-02|2015-06-11|华为技术有限公司|Encoding method and apparatus|
EP3111560B1|2014-02-27|2021-05-26|Telefonaktiebolaget LM Ericsson |Method and apparatus for pyramid vector quantization indexing and de-indexing of audio/video sample vectors|
EP3128514A4|2014-03-24|2017-11-01|Samsung Electronics Co., Ltd.|High-band encoding method and device, and high-band decoding method and device|
US9847087B2|2014-05-16|2017-12-19|Qualcomm Incorporated|Higher order ambisonics signal compression|
RU2665898C2|2014-07-28|2018-09-04|Телефонактиеболагет Лм Эрикссон |Pyramidal vector quantizer shape searching|
KR20180026528A|2015-07-06|2018-03-12|노키아 테크놀로지스 오와이|A bit error detector for an audio signal decoder|
CN108496221B|2016-01-26|2020-01-21|杜比实验室特许公司|Adaptive quantization|
EP3335215B1|2016-03-21|2020-05-13|Huawei Technologies Co., Ltd.|Adaptive quantization of weighted matrix coefficients|
CN105957533B|2016-04-22|2020-11-10|杭州微纳科技股份有限公司|Voice compression method, voice decompression method, audio encoder and audio decoder|
KR102193061B1|2016-08-10|2020-12-18|후아웨이 테크놀러지 컴퍼니 리미티드|Unit-norm codebook design and quantization|
US10366698B2|2016-08-30|2019-07-30|Dts, Inc.|Variable length coding of indices and bit scheduling in a pyramid vector quantizer|
CN107895580B|2016-09-30|2021-06-01|华为技术有限公司|Audio signal reconstruction method and device|
CN108109629A|2016-11-18|2018-06-01|南京大学|A kind of more description voice decoding methods and system based on linear predictive residual classification quantitative|
US10586546B2|2018-04-26|2020-03-10|Qualcomm Incorporated|Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding|
CN108806712B|2018-04-27|2020-08-18|深圳市沃特沃德股份有限公司|Method and apparatus for reducing frequency domain processing|
US10573331B2|2018-05-01|2020-02-25|Qualcomm Incorporated|Cooperative pyramid vector quantizers for scalable audio coding|
US10734006B2|2018-06-01|2020-08-04|Qualcomm Incorporated|Audio coding based on audio pattern recognition|
US10580424B2|2018-06-01|2020-03-03|Qualcomm Incorporated|Perceptual audio coding as sequential decision-making problems|
CN109286922B|2018-09-27|2021-09-17|珠海市杰理科技股份有限公司|Bluetooth prompt tone processing method, system, readable storage medium and Bluetooth device|
GB2585187A|2019-06-25|2021-01-06|Nokia Technologies Oy|Determination of spatial audio parameter encoding and associated decoding|
CN111554245B|2020-05-22|2021-10-08|Tcl华星光电技术有限公司|Display device driving method and display device|
RU2754497C1|2020-11-17|2021-09-02|федеральное государственное автономное образовательное учреждение высшего образования "Казанскийфедеральный университет" |Method for transmission of speech files over a noisy channel and apparatus for implementation thereof|
法律状态:
2020-08-18| B06F| Objections, documents and/or translations needed after an examination request according art. 34 industrial property law|
2020-08-25| B06U| Preliminary requirement: requests with searches performed by other patent offices: suspension of the patent application procedure|
2020-12-08| B09A| Decision: intention to grant|
2021-01-19| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 19/01/2021, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
CN200910249854.2|2009-11-27|
CN2009102498542A|CN102081926B|2009-11-27|2009-11-27|Method and system for encoding and decoding lattice vector quantization audio|
CN2009102498542|2009-11-27|
PCT/CN2010/001597|WO2011063594A1|2009-11-27|2010-10-12|Audio encoding/decoding method and system of lattice-type vector quantizing|
[返回顶部]